5
我与这两条线的麻烦:Prolog - 在特殊情况下消除重复答案的更好方法?
list_swizzle(L, [], L).
list_swizzle([], L, L).
的问题是,如果双方的前两个参数是空单,前两个语句都将被使用,返回相同的答案。但是,如果我把一个切入一个,它会破坏回溯。我最终放在他们上面的这一行:
list_swizzle([], [], []):- !.
它的工作原理。但我想知道是否有更优雅的解决方案。
这切又是一个红色的成功运行此切。你可以看到:'list_swizzle(Xs,Ys,Zs),Xs = [_]'失败并且上面的剪切。它通过@daf给出的答案成功。 – false 2012-10-07 17:59:25