読者です 読者をやめる 読者になる 読者になる

リスト内包表記でmapとfilter

Haskell

map(写像)は、再帰で書くとこう

mapp _ []      = []
mapp f (x: xs) = f x : mapp f xs

リスト内包表記を使った場合はこうなる

map f xs = [f x | x <- xs]


filter(濾過)は再帰で書くとこう

filter _ []     = []
filter p (x:xs) = if (f x) then (x:(filter p xs))
                           else (filter p xs)

リスト内包表記を使った場合はこうなる

filter p xs = [x | x <- xs, p x]