假设我有一些列表列表,[[a, b], [c], [d, e, f], ...]其中列表中的列表可以是任意长度。我已经对列表进行了排序,使得最短的列表排在第一位,并且我想生成列表中所有元素组合的列表,以便我得到一个列表[[a, c, d, ...], [a, c, e, ...], [a, c, f, ...], [b, c, d, ...], ...],即通过更改从最后一个列表中选取的元素来生成组合首先,向上移动列表以更改类似于计数的元素。
使用这个列表,我将使用列表的头部来使用惰性求值,因为我只需要 1 个满足谓词的列表。如何生成列表?
haskell functional-programming list-comprehension combinatorics nested-lists