【发布时间】:2011-04-17 01:19:41
【问题描述】:
这两行我遇到了问题:
list_swizzle(L, [], L).
list_swizzle([], L, L).
问题是,如果前两个参数都是空列表,那么前两个语句都将被使用,返回相同的答案。但是,如果我将其中一个切入,它会破坏回溯。我最终在它们上面加上了这一行:
list_swizzle([], [], []):- !.
而且它有效。但我想知道是否有更优雅的解决方案。
【问题讨论】:
-
这个切口又是一个红色切口。你可以看到这个:
list_swizzle(Xs,Ys,Zs), Xs = [_],上面的切割失败了。它以@daf 给出的答案成功。
标签: prolog prolog-cut