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