这是另一个我目前无法解决的序言任务。我必须写一个谓词p(X,Y),其中X是数字列表的列表,Y是数字列表。谓词必须验证:
1)如果X可以表示为来自Y的2个元素之间的串联。 2)X具有奇数个元素。 3)X中所有元素的总和是Y中的最后一个元素。
也许作为一个单独的任务2,3可以写得轻松。问题出在1)
提前谢谢你。我很遗憾发布这么简单的任务,但prolog真的让我发疯。我一遍又一遍地阅读了所有的文章。但情况类似于此: 学校:3 + x = 5,x =? 考试:cos(x + y + z)+ lim(5x + y)/ t = ....如果你知道我的意思。再次感谢你!
答案 0 :(得分:2)
检查连接是使用append/3
来完成的,append(A,B,C)
更常用于构建它们,但是像许多Prolog谓词一样,“在相反的方向”工作。更具体地说,C
会检查A
是B
和member(A, Y),
member(B, Y),
append(A, B, X)
的串联。所以,
A
检查Y
中的元素B
和Y
中的元素X
是否与A
统一。
(请注意,不检查B
和Y
是 <{1}}的元素。)