関数型プログラミング (英: Functional programming)とは、数学的な意味での『関数』を主に使用するプログラミングパラダイムである。
関数型プログラミングを推奨している言語を、関数型プログラミング言語 (functional programming language) というが、略して関数型言語 (functional language)と呼ぶこともある。
概要
関数型プログラミングでは、関数を軸にプログラミングを行う。
ここでの関数とは、数学的な関数、すなわち参照透過性をもつもの(Pure Function)を指す。
参照透過性とは、数学的な関数と同じように、引数が同じであれば同じ値を返す性質である。
例としてこのPythonコードを見ていただく。
def expression(x):
return x ** 2 # xの2乗
ここでは、のときには、のときはのように、引数が同じときは常に同じ値を返す。数学で言うところのと同じだ。
関数プログラミングでは、関数を使って組み立てた式が軸となっている。プログラミング言語ではよく「関数を実行する」や「関数を呼び出す」と表現するが、関数型プログラミング言語では「式を評価する」という表現もよく使われる。
言語
主要な言語は以下の通り。
特化
- Elm
- Scala
- Haskell
- LISP
マルチパラダイム
- Python
- JavaScript
- Ruby
- Kotlin
- Rust