【问题标题】:List to List of List with all possible combination列表到所有可能组合的列表列表
【发布时间】:2016-05-10 22:51:21
【问题描述】:

首先,我不记得这个重复列表的名称。

我有一个清单:

myList = [0, 1, 2]

我想重复列表列表:

[[0,1,2],[1,2,0],...]

我知道我可以做到permutations myList 但不会覆盖[[0,0,0],[1,1,1],[1,1,0],...]等重复的部分

所以,我的问题是此类列表的名称是什么。 不是permutations,也绝对不是combinations

在逻辑上,我们称之为truth table,我相信。

haskell 中有内置函数吗?

【问题讨论】:

标签: list haskell


【解决方案1】:
GHCi, version 7.10.2: http://www.haskell.org/ghc/  :? for help
Prelude> :m +Control.Monad
Prelude Control.Monad> replicateM 3 [0,1,2]
[[0,0,0],[0,0,1],[0,0,2],[0,1,0],[0,1,1],[0,1,2],[0,2,0],[0,2,1],[0,2,2],[1,0,0],[1,0,1],[1,0,2],[1,1,0],[1,1,1],[1,1,2],[1,2,0],[1,2,1],[1,2,2],[2,0,0],[2,0,1],[2,0,2],[2,1,0],[2,1,1],[2,1,2],[2,2,0],[2,2,1],[2,2,2]]

请注意,基本上,允许值列表的长度无需与每个选项列表的长度相关联。

【讨论】:

    【解决方案2】:

    列表理解

    x = [0,1,2]
    [[a,b,c] | a<-x, b<-x, c<-x]                           
    
    [[0,0,0],[0,0,1],[0,0,2],[0,1,0],[0,1,1],[0,1,2],[0,2,0],[0,2,1],[0,2,2],
     [1,0,0],[1,0,1],[1,0,2],[1,1,0],[1,1,1],[1,1,2],[1,2,0],[1,2,1],[1,2,2],
     [2,0,0],[2,0,1],[2,0,2],[2,1,0],[2,1,1],[2,1,2],[2,2,0],[2,2,1],[2,2,2]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 2010-10-22
      相关资源
      最近更新 更多