関数型言語
オブジェクト指向の次の技術として注目されている.
関数でプログラムを組み上げる.
全ての式は値を返す.
戻り値は最後に評価した式になるため,return文を持たない.
関数は値である.
関数と引数を柔軟に組み合わせる.
副作用を起こさない.
場合分けと再帰でループを記述する.
ループは再帰とパターンマッチで行うためfor文やwhile文も存在しない.
コンパイラが型を自動的に推測する.
第一級関数によってポリモーフィズムを実現する.
関数型言語のメリット
コードがかなり小さくなる.
それだけ簡潔でわかりやすく,保守性も高い.
汎用的に再利用部品が作れる.
副作用のない関数など.
クラスより粒度が小さいため,小さい単位で部品化できる.
副作用がないため,分散処理との相性が良い.
table:関数型言語の分類
静的型付け 動的型付け
純粋関数型言語 Haskell, Miranda Lazy K
非純粋関数型言語 Scala, OCaml, F#, ML Common Lisp, Scheme, Erlang
-> 命令型言語