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