4
我有一个运算符存储在一个变量Op和两个整数存储在X和Y.现在,我想要做一些像(Z是X操作Y),但这种语法似乎不是正确。序言 - 变量作为运算符
有没有人知道在Prolog中是否有办法做到这一点?
谢谢您的回答
我有一个运算符存储在一个变量Op和两个整数存储在X和Y.现在,我想要做一些像(Z是X操作Y),但这种语法似乎不是正确。序言 - 变量作为运算符
有没有人知道在Prolog中是否有办法做到这一点?
谢谢您的回答
you ca n通过使用= ..运算符构建谓词。
尝试这样的:
compute(X,Y,Op,Z) :-
Eq=..[Op, X, Y],
Z is Eq.
运算符是真的,就像任何其他仿函数。
你可以模仿的效果:
operator(Z,X,plus,Y):-Z is X + Y.
operator(Z,X,times,Y):-Z is X * Y.
我想这对ideone.com为SWI-Prolog的:
而且我得到了:
OP = times,
Z = 24.
http://www.swi-prolog.org/pldoc/doc_for?object=%28%3D..%29/2 – DaveEdelstein