Variables Prolog中的加法函数

Variables Prolog中的加法函数,variables,prolog,add,clpfd,Variables,Prolog,Add,Clpfd,有没有一种方法可以创建一个用于加法的函数/3来实现这一点: 加(1,2,X)-X是3。 添加(1,X,3)-X是2。 添加(X,2,3)-X是1。作为初学者,最好使用库(clpfd),它提供了所有这些功能;更重要的是。与 ?- use_module(library(clpfd)). 我们从SICStus开始,您现在必须告诉assert(clpfd:full_answer),然后我们有: ?- 1+2#=Z. Z = 3. ?- 1+Y#=3. Y = 2. 如你所料。但更重要的是 ?- X

有没有一种方法可以创建一个用于加法的函数/3来实现这一点:
加(1,2,X)-X是3。
添加(1,X,3)-X是2。

添加(X,2,3)-X是1。

作为初学者,最好使用
库(clpfd)
,它提供了所有这些功能;更重要的是。与

?- use_module(library(clpfd)).
我们从SICStus开始,您现在必须告诉
assert(clpfd:full_answer)
,然后我们有:

?- 1+2#=Z.
Z = 3.

?- 1+Y#=3.
Y = 2.
如你所料。但更重要的是

?- X+X#=Z.
2*X#=Z.

?- X+X#=X.
X = 0.

?- X+Y#=Z.
X+Y#=Z.

请参阅以了解如何提出适当的问题。你需要表现出一种尝试,并就你的困境提出具体的问题。作为问题的提示,请参阅Prolog CLPFD库。如果您使用的是SWI Prolog,则谓词
plus/3
正好可以做到这一点。w/o任何Prolog扩展(在ISO Prolog中),您都可以使用var/1谓词检查变量是否自由或有界,并根据参数(1、2或3d)是否自由执行相应的加法