我在使用这两行时遇到了麻烦:
list_swizzle(L, [], L).
list_swizzle([], L, L).
Run Code Online (Sandbox Code Playgroud)
问题是,如果前两个参数都是空列表,则前两个语句都将被使用,返回相同的答案.但是,如果我把一个切入一个,它会破坏回溯.我最终把它放在它们上面:
list_swizzle([], [], []):- !.
Run Code Online (Sandbox Code Playgroud)
它有效.但我想知道是否有更优雅的解决方案.