内置谓词序言

时间:2015-03-19 22:43:40

标签: prolog predicate

所以我想知道以下哪些内容被认为是在prolog的谓词中构建的。

  • ,
  • ;
  • |
  • is
  • +

问题是我需要编写一些prolog代码而不使用任何内置谓词。

1 个答案:

答案 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)))).