generated at
リスト内包表記 (hs)

Listモナドに対する操作を数学の集合の定義っぽくリストを書ける

hs
-- [ 式 | リストの要素値 <- リスト, 条件] [ n | n <- [1..10], n `mod` 2 /= 0 ] -- [1,3,5,7,9]

hs
[x | x <- [1..10], even x] -- [2,4,6,8,10]

タプルリストも作れる
hs
[ (x, y) | x <- [1,2,3], y <- [11,12] ] -- [(1,11),(1,12),(2,11),(2,12),(3,11),(3,12)]
リスト内包表記はdoの糖衣構文 ref
以下のやつの糖衣構文
hs
-- リスト >>= \リストの要素値 -> if 条件 then [式] else [] ns >>= \n -> if n `mod` p /= 0 then [n]
hs
do n <- ns if n `mod` p /= 0 then [n] else []

>
>
モナドというかdo式