Prolog中的基本错误

时间:2016-07-01 17:16:33

标签: prolog

我有这个: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。我犯了什么错误?

1 个答案:

答案 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)].