【发布时间】:2014-11-25 10:10:42
【问题描述】:
我在 Haskell 中有一个列表。从每个列表中获取一个元素时,我想获得所有可能性。我目前拥有的是
a = [ [1,2], [10,20,30], [-1,-2] ] -- as an example
whatIWant = [ [p,q,r] | p <- a!!0, q <- a!!1, r <- a!!2 ]
这就是我想要的。但是,这显然不是很好的代码,我正在寻找一种更好的方法来编写列表理解,这样代码中就不会出现索引号(0,1,2)......这就是我所在的位置卡住了。
我该怎么做?
【问题讨论】:
-
您是否坚持使用列表推导式来做这件事?我认为对于这样的任务,函数更好更干净。
-
@JanŽegklitz 感谢您的评论。并不是我坚持这一点:我只是觉得有一个很好的和干净的方式来编写列表理解,并且根本不知道这是否可能。
-
您想要所有列表的笛卡尔积。使用
sequence a来实现这一点。 stackoverflow.com/questions/3387359/…
标签: haskell list-comprehension