我如何在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
]
答案 0 :(得分:8)
假设a
保证长度为100,我认为你想要的是generate a = filter isCorrect $ sequence a
。 sequence
monad中使用了[]
来生成列表列表的笛卡尔积。