从prolog中的函数返回值

时间:2016-11-26 23:57:35

标签: prolog

我们如何从只接受一个参数的prolog函数返回一个值?防爆。 leaf(V)是一个函数,它应该返回一个值V并从函数树中调用它(leav(V),sum)?

2 个答案:

答案 0 :(得分:4)

Prolog没有"功能",它有"谓词"。即它们是术语之间关系的描述。谓词只能 评估为" true"或"假"。

但是,谓词评估为真或假的方式是通过统一,即prolog尝试从现有知识库(即您的源代码)中查找变量的实例,这将使该谓词成立。

因此,你可以欺骗形式为Pred(In,Out)的prolog谓词,这样,对于给定的" In" prolog可以统一" Out"使用正确的值使谓词成立。

答案 1 :(得分:3)

Prolog没有功能评估,因此您必须将您的功能表示为关系

f(In,Out) :- ... define the relationship between In and Out in the body ...

例如平方:

square(X,Y) :- Y is X*X.
?- square(12,X).
X=144

"功能符号"在Prolog中纯粹是指称性的:它们用于构建术语:

f(x)

上述术语没有固有的含义或可解决性。它只是一个术语,更确切地说是一棵树

f
|
x