【发布时间】:2021-03-30 00:19:47
【问题描述】:
我的问题是我想创建一个给定列表的所有组合的无限列表。比如:
infiniteListComb [1,2] = [[],[1],[2], [1,1],[1,2],[2,1],[2,2], [1,1,1], ...].
其他例子:
infiniteListComb [1,2,3] = [[], [1], [2], [3], [1,1], [1,2], [1,3], [2,1],[2,2],[2,3],[3,1],[3,2],[3,3],[1,1,1], ...].
让我想起了幂集,但其中包含相同元素的列表。 我尝试了什么: 我是 Haskell 的新手。我尝试了以下方法:
infiniteListComb: [x] -> [[x]]
infiniteListComb [] = []
infiniteListComb [(x:xs), ys] = x : infiniteListComb [xs,ys]
但这不起作用,因为它只是再次总结了我的清单。还有其他想法吗?
【问题讨论】:
-
您尝试过的代码不起作用,因为输入完全错误(您输入了一个列表列表,但您的输入表明它应该能够输入任何值的列表) 而且它甚至没有有效的语法。
-
模式
[(x:xs),ys]匹配列表列表,而不是项目列表。
标签: list haskell combinations infinite