【发布时间】:2020-06-20 04:16:40
【问题描述】:
我需要在列表列表中找到组合。例如,给出以下列表,
List = [[1, 2], [1, 2, 3]]
这些应该是输出,
Comb = [[1,1],[1,2],[1,3],[2,1],[2,2],[2,3]]
另一个例子:
List = [[1,2],[1,2],[1,2,3]]
Comb = [[1,1,1],[1,1,2],[1,1,3],[1,2,1],[1,2,2],[1,2,3]....etc]
我知道如何为具有两个子列表的列表执行此操作,但它需要适用于任意数量的子列表。
我是 Prolog 新手,请帮忙。
【问题讨论】:
-
List = [[1,2],[1,2],[1,2,3]], bagof(Es, maplist(member,Es,List), Ess). -
@GuyCoder:你的解决方案怎么样?
-
@GuyCoder:任何基于本身不太符合标准的系统的扩展肯定是相当可疑的。如果遇到困难,必须查阅下面扩展的 Prolog。
-
@GuyCoder:那么你认为这对 OP 来说会很容易吗?
-
@GuyCoder:提醒:您提供了一笔交易。我完成了我的职责。