我需要在列表列表中找到组合。 例如给出以下列表,
列表 = [[1, 2], [1, 2, 3]]
这些应该是输出,
梳子 = [[1,1],[1,2],[1,3],[2,1],[2,2],[2,3]]
另一个例子:
列表 = [[1,2],[1,2],[1,2,3]]
梳子 = [[1,1,1],[1,1,2],[1,1,3],[1,2,1],[1,2,2],[1,2 ,3]...等]
我知道如何对具有两个子列表的列表执行此操作,但它需要适用于任意数量的子列表。
我是序言新手,请帮忙。
最佳答案
try([],[]).
try([L|Ls],[M|Ms]):-
member(M,L),
try(Ls,Ms).
all(L,All) :- findall(M, try(L,M), All).
try 返回一个由第一个参数的子列表的元素组成的列表。 all 查找所有此类列表。
关于prolog - 列表列表中的组合 Prolog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10239662/