將單調性與效率相結合
有時人們認為,為了提高效率,我們必須接受在現實世界的 Prolog 程式中使用非單調構造。
沒有證據證明這一點。最近的研究表明,Prolog 的純粹單調子集不僅足以表達大多數真實世界的節目,而且在實踐中也可以接受。最近發現並鼓勵這種觀點的構造是 if_/3
:它結合了單調性和減少選擇點。請參見索引 dif / 2 。
例如,表單的程式碼:
pred(L, Ls) :-
condition(L),
then(Ls).
pred(L, Ls) :-
\+ condition(L),
else(Ls).
可以用 if_/3
寫成:
pred(L, Ls) :-
if_(condition(L),
then(Ls),
else(Ls)).
並將單調性與決定論結合起來。