Haskell/関数
Haskellでは*のような演算子も関数である。
名前が特殊文字で構成される関数はデフォルトで中置関数となる。
中置関数を呼び出すには2つの引数の真ん中に関数を置く。
Prelude> 3 * 4
12
ほとんどの関数は前置関数で、前に関数を置きスペースで区切って引数を書く。括弧とカンマは不要。
Prelude> max 9 10
10
バッククオートを使うと中置関数として呼び出せるようになる。
Prelude> div 92 10
9
Prelude> 92 `div` 10
9
関数名、引数、=に続けて関数の本体を書く。
Prelude> twice x = x + x
Prelude> twice 9
18
関数に1つも引数がないとき、定義や名前と呼ぶ。
関数も型を持つ。基本的には明示的に型宣言をしたほうがよい。
::は「の型を持つ」という意味。->の左側が引数の型、右側が戻り値の型を示す。
引数が複数ある場合、引数同士も->で区切られる。
twice :: Int -> Int
twice x = x + x
add :: Int -> Int -> Int
add x y = x + y
Haskellでは関数を大文字で始められない。
シングルクォートは、慣習的に正格(遅延でない)版の関数を表したり、少し変更したバージョンの関数の名前に使われる。
ifは必ず値を返す式であり、else節は必須である。
func n = if n < 10 then "small" else "big"