「関数型言語」の版間の差分

特徴
タグ: ビジュアルエディター Refタグつき記述の除去
(特徴)
'''関数型プログラミング'''(かんすうがたプログラミング、{{lang-en-short|''functional programming''}})は、[[プログラミングパラダイム]]の一つであり、[[ソフトウェア工学]]における主にプログラムリスト作成とコード記述の分野で用いられる考え方である。一説には[[数理論理学]]の[[ラムダ計算]]をモデルにして考案されたと言われる。
 
ここでの'''関数'''(''function'')とは、入力値を変換式に与えて出力値を導き出す仕組みのプログラム構文を指す。関数型プログラミングの世界では、大局的にはコード(変換式)とデータ(値)が完全に分離されている。実行中におけるプログラム環境の変化は副作用(''side-effect'')と呼ばれ、この副作用に関する一切の情報はデータ側に蓄積されてコード側は保有しない。またデータは生成されるのみで変化する事はない。入力値を与えた変換式の演算結果与えられた入力値に次今回の副作用情報加え上乗せして新たに生成された出力値を、再帰的に変換式に与え続けて最終的な最適解の値を得るのが、関数型プログラミングの基本的な流れとなる。
 
== 特徴 ==
関数型プログラミングの理念(在り方)は、[[参照透過性]](''referential transparency'')、情報構造体(''data structures'')、[[再帰]](''recursion'')、[[評価戦略]](''evaluation strategy'')の四点で表現できる。[[高階関数]](''higher-order functions'')、[[第一級関数]](''first-class functions'')、純粋関数(''pure functions'')、[[データ型]](''type systems'')も不可欠なものであるが、これらは実装法または最適化よりの考え方である。
 
=== 参照透過性 ===
 
=== 情報構造体 ===
 
=== 型理論 ===
 
=== 再帰 ===
=== 評価戦略 ===
 
=== 第一級高階関数と高階第一級関数 ===
 
=== 純粋関数 ===
 
=== 束縛変数と自由変数データ型 ===
 
=== 型理論その他 ===
 
== 概要 ==<!--関数型プログラミングではプログラムの構成にC言語のように関数を多用する<ref>The C language is purely functional http://conal.net/blog/posts/the-c-language-is-purely-functional</ref>。[[Wikipedia:検証可能性#通常は信頼できないとされる情報源]]-->
1,463

回編集