Prolog - 作为运算符变量

时间:2011-10-01 11:26:35

标签: prolog

我有一个存储在变量Op中的运算符,并且在X和Y中存储了两个整数。现在,我想做类似的事情(Z是X Op Y),但这种语法似乎不正确。

有人知道在Prolog中是否有办法做到这一点?

感谢您的回答

2 个答案:

答案 0 :(得分:9)

你可以通过使用= ..运算符构建谓词来实现。

尝试如下:

compute(X,Y,Op,Z) :-
   Eq=..[Op, X, Y],
   Z is Eq.

操作员就像任何其他算子一样。

答案 1 :(得分:0)

您可以模仿效果:

operator(Z,X,plus,Y):-Z is X + Y.  
operator(Z,X,times,Y):-Z is X * Y.

我在ideone.com上试用了SWI-Prolog:

OP=times, operator(Z,3,OP,8).

我得到了:

OP = times,
Z = 24.
相关问题