関数型プログラミング (英: 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