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

編集の要約なし
{{プログラミング言語|index=かんすうかたけんこ}}
[[ファイル:Orange_lambda.svg|リンク=https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Orange_lambda.svg|代替文=|境界|右|フレームなし|167x167ピクセル]]
'''関数型プログラミング言語'''({{lang-en-short|''functional programming language''}})は、関数型プログラミングの[[プログラミングパラダイム|パラダイム]]を扱う[[プログラミング言語]]の総称である。本稿ではそのパラダイムについても説明する。'''純粋関数型'''(''purely functional'')と'''非純粋関数型'''(''impure functional'')の二つに大別され、後者の方が幅広く用いられている。[[マルチパラダイムプログラミング言語|マルチパラダイム言語]]に組み込まれているものは例外なく非純粋であり、関数型パラダイムの一部分をかいつまんだものと考えてよい
 
'''関数'''(''function'')とは与えられた入力値から任意の出力値を導き出す変換式を意味するが、[[数理論理学]]の[[型付きラムダ計算]]がモデルにされた背景からやや特殊な性質を持つ。関数はそれ自体が型付きの値として扱われ、そで前述型は各引数へ入力適用から結果値または出力値にする事もの連鎖パターンとして表現される。関数を値として扱える関数の仕組みは[[高階関数]](''higher-order function'')、値そのものとして扱われる関数の仕組みは[[第一級関数]](''first-class function'')と呼ばれる。'''型'''(''type'')を体系化しまた抽象化する仕組みは[[型システム]](''type system'')と呼ばれる。それらの組み合わせによる計算式の構文が関数型プログラミングをユニークにしている。非純粋関数型はほとんどこの高階関数と第一級関数の構文仕様に着目したものである。純粋関数型は[[副作用 (プログラム)|副作用]](''side-effects'')をイメージ的に排除する[[参照透過性]](''referential transparency'')を中心にしたものであり、その仕様実現の為に専用のランタイム環境上でプログラムは走行される。
 
== 概要 ==
=== 参照透過性(''referential transparency'') ===
 
=== データ機構(''data structuresstructure'') ===
 
=== 再帰(''recursion'') ===
=== 評価戦略(''evaluation strategy'') ===
 
=== 型の体系(''type systemssystem'') ===
 
=== 純粋関数(''pure functionsfunction'') ===
 
=== 高階関数と第一級関数(''higher-order and first-class functionsfunction'') ===
 
== 歴史 ==
169

回編集