我有这个:problem(a(1,2,3),P)
我需要得到这个:P = [e(1, 3), e(2, 0)]
几天前我刚开始使用Prolog,我写了这个:
problem([a(X,Y,Z)],P) :- P is [e(X,Z),e(Y,0)].
但我只能通过回答获得false
。我犯了什么错误?
答案 0 :(得分:2)
标准is/2
谓词用于评估算术表达式。在你的情况下,一个简单的事实就足够了:
problem(a(X,Y,Z), [e(X,Z),e(Y,0)]).
例如:
?- [user].
problem(a(X,Y,Z), [e(X,Z),e(Y,0)]).
|: ^D
?- problem(a(1,2,3), P).
P = [e(1, 3), e(2, 0)].