0

这是我目前无法解决的另一个序言任务。我必须写一个谓词 p(X,Y),其中 X 是数字列表,Y 是数字列表。谓词必须验证:

1) 如果 X 可以表示为来自 Y 的 2 个元素之间的串联。 2) X 具有奇数个元素。3) X 中所有元素的总和是 Y 中的最后一个元素。

也许作为单独的任务 2、3 可以很容易地编写。问题出在 1)

先感谢您。我为发布如此简单的任务感到抱歉,但 prolog 真的让我发疯。我一遍又一遍地阅读我所有的课文。但是情况类似这样:school: 3+x=5, x = ? 考试: cos(x+y+z) + lim (5x+y)/t = .... 如果你明白我的意思。再一次感谢你!

4

1 回答 1

2

检查连接是用 来完成的append/3,它更常用于构建它们,但像许多 Prolog 谓词一样“在相反的方向”工作。更具体地说,append(A,B,C)检查是否C是 和 的A连接B。所以,

member(A, Y),
member(B, Y),
append(A, B, X)

检查是否有一个元素AinY和一个元素BinY使得它们的连接与X.

(请注意,这不会检查和 是否AB不同元素Y。)

于 2012-08-27T14:15:59.260 回答