所以我想知道以下哪些内容被认为是在prolog的谓词中构建的。
,
;
|
is
+
问题是我需要编写一些prolog代码而不使用任何内置谓词。
答案 0 :(得分:-1)
Ulrich Neumerkel在此处维护一个包含ISO谓词和可评估函数的列表: http://www.complang.tuwien.ac.at/ulrich/iso-prolog/prologue#status_quo
但通常控制结构 7.8并不是真正的bips:
1 true/0. 2 fail/0. 3 call/1. 4 !/0. 5 (',')/2. 6 (;)/2 – disjunction.
7 (->)/2. 8 (;)/2 – if-then-else. 9 catch/3. 10 throw/1.
这是因为它们的剪切透明度通常无法实现 ISO Prolog本身。例如Prolog条款,例如:
and(A,B) :- A, B.
仅近似于连词的作用,因为它无法正确处理剪辑。所以这些(元)谓词构成了核心。
因此,如果你只使用7.8集,那么你可以认为自己在没有笔记的情况下工作。如果你不使用call / 1,!/ 0,( - >)/ 2,catch / 3和throw / 1,你甚至只使用Horn Clauses。
并非Horn条款中没有任何内容可以完成,许多谜语和noSQL应用程序都可以正常工作,例如你可以定义Peano:
add(n, X, X).
add(s(X), Y, s(Z)) :- add(X, Y, Z).
以下是2 + 2 = 4的示例运行:
?- add(s(s(n)), s(s(n)), X).
X = s(s(s(s(n)))).