【发布时间】:2019-12-29 13:43:23
【问题描述】:
solution([ ], List, List).
solution([Head|Tail], List,[Head|Result]):-
solution(Tail, List,Result).
预期输出
| ?- Solution(X,Y,[a,b,c]).
X = [a,b,c]
Y = [] ? ;
X = [a,b]
Y = [c] ? ;
X = [a,c]
Y = [b] ? ;
X = [a]
Y = [b,c] ? ;
X = [b,c]
Y = [a] ? ;
X = [b]
Y = [a,c] ? ;
X = [c]
Y = [a,b] ? ;
X = []
Y = [a,b,c] ? ;
实际输出
X = [] Y = [a,b,c] ? ;
X = [a]
Y = [b,c] ? ;
X = [a,b]
Y = [c] ? ;
X = [a,b,c]
Y = [] ? ;
它并没有遍历所有可以从定义的谓词中得出的解决方案。我希望输出如上所示,包含将 2 个列表组合在一起的所有解决方案 有什么帮助吗?
【问题讨论】:
-
为什么
x = [c, b, a], Y = []不是解决方案?