【发布时间】:2017-12-09 19:56:25
【问题描述】:
尝试为函数matchFirstTwo(List1, List2) 编写包含以下规则的 Prolog 规则,如果第一个列表的最后两个元素 = 第二个列表的前两个元素,则计算结果为 true。附加和反转无法在解决方案中实现。
last([X], X).
last([_|Z], X) :- last(Z, X).
nextToLast([X,_], X).
nextToLast([_|Z], X) :- nextToLast(Z, X).
写入matchFirstTwo(List1, List2) — 当List2 的第一个和第二个元素等于List1 的最后两个元素时成功
% Example :
?- matchFirstTwo([a,b,c,d],[d,c,a,b]).
true.
【问题讨论】:
-
matchFirstTwo([a],[a])呢? -
它说
List2's first and second element are equalsbtw 使用递归,当你达到 2 的长度时,然后简单地比较它们 -
@TomasBy:通过编辑,您会阻止其他编辑,因为审阅需要花费大量时间。在编辑帖子之前先获得 2k!
标签: prolog