手続き型プログラミングとの比較
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/06 04:20 UTC 版)
「関数型プログラミング」の記事における「手続き型プログラミングとの比較」の解説
C 言語や Java 、 JavaScript 、 Python 、 Ruby などの2017年現在に使われている言語の多くは、手続き型の文法を持っている。そのような言語では、文法として式 (expression) と文 (statement) を持つ。ここでの式は、計算を実行して結果を得るような処理を記述するための文法要素であり、加減乗除や関数呼び出しなどから構成されている。ここでの文は、何らかの動作を行うようにコンピュータへ指示するための文法要素であり、条件分岐の if 文やループの for 文と while 文などから構成されている。手続き型の文法では、式で必要な計算を進め、その結果を元にして文でコンピュータ命令を行うという形で、プログラムを記述する。このように、手続き型言語で重要なのは文である。 それに対して、関数型言語で重要なのは式である。関数型言語のプログラムはたくさんの式で構成され、プログラムそのものも一つの式である。たとえば、 Haskell では、プログラムの処理の記述において文は使われず、外部の定義を取り込む import 宣言も処理の一部として扱えない。関数型言語におけるプログラムの実行とは、プログラムを表す式の計算を進めて、その結果として値 (value) を得ることである。式を計算することを、評価する (evaluate) という。 手続き型言語ではコンピュータへの指示を文として上から順に並べて書くのに対して、関数型言語では数多く定義した細かい式を組み合わせてプログラムを作る。手続き型言語では文が重要であり、関数型言語では式が重要である。 式と文の違いとして、型が付いているかどうかというのがある。式は型を持つが、文は型を持たない。プログラム全てが式から構成されていて、強い静的型付けがされているのならば、プログラムの全体が細部まで型付けされることになる。このように細部まで型付けされているようなプログラムは堅固なものになる。
※この「手続き型プログラミングとの比較」の解説は、「関数型プログラミング」の解説の一部です。
「手続き型プログラミングとの比較」を含む「関数型プログラミング」の記事については、「関数型プログラミング」の概要を参照ください。
- 手続き型プログラミングとの比較のページへのリンク