Prolog-变量as运算符

Prolog-变量as运算符,prolog,Prolog,我在一个变量Op中存储了一个运算符,在X和Y中存储了两个整数。现在,我想做一些类似(Z是X Op Y)的事情,但这种语法似乎不正确 有人知道在Prolog中是否有这样做的方法吗 感谢您的回答您可以模仿以下效果: 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

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

有人知道在Prolog中是否有这样做的方法吗


感谢您的回答

您可以模仿以下效果:

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.

您可以通过使用=。。接线员

像这样尝试:

compute(X,Y,Op,Z) :-
   Eq=..[Op, X, Y],
   Z is Eq.
算符实际上和其他函子一样