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

が長さ 100 であることが保証されていると仮定するとa、あなたが望むのはgenerate a = filter isCorrect $ sequence a. ここでは、リストのリストのデカルト積を生成するためsequenceにモナドで使用されています。[]

于 2010-12-27T23:59:39.680 に答える