関数型プログラミング
関数型プログラミング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/06/19 06:55 UTC 版)
関数型プログラミング(かんすうがたプログラミング、英: functional programming)とは、数学的な意味での関数を主に使うプログラミングのスタイルである[1]。 functional programming は、関数プログラミング(かんすうプログラミング)などと訳されることもある[2]。
注釈
- ^ (Church 1932)
- ^ (Church 1941)
- ^ (McCarthy 1978)
- ^ (Landin 1964)
- ^ (Landin 1965)
- ^ (Landin 1966)
- ^ (Iverson 1962)
出典
- ^ a b c d e f g h i j k l 本間, 類地 & 逢坂 2017, p. 3
- ^ a b c d e 本間, 類地 & 逢坂 2017, p. 2
- ^ a b c d e f 本間, 類地 & 逢坂 2017, p. 4
- ^ a b c d 本間, 類地 & 逢坂 2017, p. 5
- ^ a b c d e f g h i j 本間, 類地 & 逢坂 2017, p. 6
- ^ 本間, 類地 & 逢坂 2017, p. 23
- ^ 本間, 類地 & 逢坂 2017, p. 31
- ^ 本間, 類地 & 逢坂 2017, p. 32
- ^ a b c d Lipovača 2012, p. 22
- ^ a b c d e f g h i j k l 本間, 類地 & 逢坂 2017, p. 22
- ^ a b c d e 本間, 類地 & 逢坂 2017, pp. 22–23
- ^ a b c Hudak 1989, p. 363
- ^ Hudak 1989, p. 367
- ^ Hudak 1989, pp. 367–368
- ^ a b c d e f g h i j k l Hudak 1989, p. 371
- ^ a b c Hudak 1989, pp. 371–372
- ^ a b c d e f Hudak 1989, p. 372
- 1 関数型プログラミングとは
- 2 関数型プログラミングの概要
- 3 概要
- 4 歴史
- 5 脚注
- 6 関連項目
関数型プログラミング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/03 01:23 UTC 版)
「並行論理プログラミング」の記事における「関数型プログラミング」の解説
時間変化する計算状態を意識する必要がないという点で、並行論理プログラミングは関数型プログラミングによく似ている。計算の背景となる意味論が明確であるという共通点もある。関数型プログラミングとの違いの1つは、並行論理プログラミングの非決定性である。ガード条件を満たす節が複数ある場合、選択は非決定的に行われる。実行時やコンパイル時の自由度が上がり、より効率的な実行ができる可能性がある。関数型プログラムはどんなハードウェア上でも同じ計算をするが、並行論理プログラミングで複数のプロセッサを用いた計算を行う場合、よりプロセッサ間通信が少なくなる節を優先して選ぶなど、最適化の幅が広がる。
※この「関数型プログラミング」の解説は、「並行論理プログラミング」の解説の一部です。
「関数型プログラミング」を含む「並行論理プログラミング」の記事については、「並行論理プログラミング」の概要を参照ください。
関数型プログラミング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/20 17:06 UTC 版)
「カルダノ (ブロックチェーン)」の記事における「関数型プログラミング」の解説
IOG(IOHK)では関数型プログラミング言語、特にHaskellを愛用している。関数型プログラミング言語は、他の言語に比べてあいまいさや人的エラーを抑えられるばかりでなく、数学的見地からテストや検証が行いやすいことから、保証性に優れた形式手法の採用という開発方針を補強する。
※この「関数型プログラミング」の解説は、「カルダノ (ブロックチェーン)」の解説の一部です。
「関数型プログラミング」を含む「カルダノ (ブロックチェーン)」の記事については、「カルダノ (ブロックチェーン)」の概要を参照ください。
関数型プログラミング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/06 16:16 UTC 版)
「In-placeアルゴリズム」の記事における「関数型プログラミング」の解説
関数型言語ではデータを上書きするような明確な in-placeアルゴリズムをサポートしていない(推奨しない)ことが多い。これは、データの上書きが副作用の一種であるためで、関数型言語では新たにデータ構造を作成することだけを許す(推奨する)のが一般的である。しかし、コンパイラが高度なものであれば、新たなデータが既存のデータに似ていて、かつ既存のデータが捨てられるだけであった場合、最適化によってデータ領域を再利用することがある。 ただし、これはデータの更新と以前のデータの参照が前後しないよう注意深く構築された in-placeアルゴリズムでなければならず、実際にはめったにない。
※この「関数型プログラミング」の解説は、「In-placeアルゴリズム」の解説の一部です。
「関数型プログラミング」を含む「In-placeアルゴリズム」の記事については、「In-placeアルゴリズム」の概要を参照ください。
関数型プログラミングと同じ種類の言葉
- 関数型プログラミングのページへのリンク