1

我如何在 Haskell 中使用列表推导中的任意输入集?

我会给你一个我所追求的例子:

generate :: [[[Integer]]] -> [[[Integer]]]
generate a = [ result | 
      i1 <- a !! 0,
      i2 <- a !! 1,
      i3 <- a !! 2,
      i4 <- a !! 3,
      ...
      i99 <- a !! 99,
      let result = [i1,i2,i3,i4, ..., i99],
      isCorrect result
   ]
4

1 回答 1

8

假设a保证长度为 100,我认为你想要的是generate a = filter isCorrect $ sequence a. 这里sequence[]monad 中用于生成列表列表的笛卡尔积。

于 2010-12-27T23:59:39.680 回答