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