メモ:Haskellの関数などいろいろ

リスト用の関数

length リストの要素数を返す
sum リストの総和
product リストの総積
take リストの先頭 n 個を抽出 (例) take 2 [1,2,3,4,5]
drop リストの先頭 n 個を落として抽出 (例) drop 2 [1,2,3,4,5]
reverse リストを逆順にする
map リストの全ての要素に同じ処理 (例) map (*2) [1..9]
リスト内包表記と同等
filter リストから条件を指定して要素を取り出す (例) filter (<5) [1..9]
リスト内包表記と同等
foldl リストの要素を左から1つずつ処理 (例) foldl (-) 0 [1..5] → -15
foldr リストの要素を右から1つずつ処理 (例) foldr (-) 0 [1..5] → 3

タプル用の関数

fst 素数が2個のタプルから前の値を取り出す
snd 素数が2個のタプルから後の値を取り出す

※ リストのように !! では取り出せない。

Control.Monad モジュールの関数

replicateM アクションを指定した回数繰り返して結果の値をリスト化
replicateM_ アクションを指定した回数繰り返して結果の値は捨てる
forM リストの各要素に対してアクションをおこないを結果の値をリスト化
forM_ リストの各要素に対してアクションをおこないを結果の値は捨てる
when when 条件 アクション で、条件が真のときだけアクションをおこなう
unless unless 条件 アクション で、条件が偽のときだけアクションをおこなう

その他の関数

flip 2引数関数で引数の順序を反転