我是Prolog的初学者,我很难理解为什么这段代码不能像我期望的那样工作。
这是我的数据库:
p([1, 2, 3]).
isFirstElement(X, [H|_]) :- X = H.
这是我的控制台:
?- p(X).
X = [1, 2, 3].
?- isFirstElement(1, p(X)).
false.
?- isFirstElement(1, [1, 2, 3]).
true.
对isFirstElement的第一次调用不会返回true,我不知道为什么。 p(X)没有被评估吗?我该怎么做呢?
答案 0 :(得分:0)
isFirstElement
的第二个参数应该是列表,而不是谓词。
isFirstElement(1, X)