技術のメモ箱

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式

ifは必ず値を返す式であり、else節は必須である。

func n = if n < 10 then "small" else "big"
pagetop