「純粋関数」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の2版が非表示) | |||
| 1行目: | 1行目: | ||
'''純粋関数''' | '''純粋関数'''とは、「入力値は[[引数]]だけ」の[[関数]]のことです。基本的にある引数に対して常に同じ[[戻り値]]を返します。 | ||
[[C言語]]でいえば[[関数]]内部で[[グローバル変数]]を一切使っていないものを指します。 | [[C言語]]でいえば[[関数]]内部で[[グローバル変数]]を一切使っていないものを指します。[[C言語]]の入門書に書いてある「グローバル変数は極力使うな」というやつを実践したものです。 | ||
なお、関数内部で[[ファイル]]や[[データベース]]や[[乱数]]などを利用している場合は、それらも一種の入力であるため、それらを利用した時点で純粋性は失われて一定の[[戻り値]]にならない場合があります。 | なお、関数内部で[[ファイル]]や[[データベース]]や[[乱数]]などを利用している場合は、それらも一種の入力であるため、それらを利用した時点で純粋性は失われて一定の[[戻り値]]にならない場合があります。 | ||
| 7行目: | 7行目: | ||
[[関数型言語]]の信者たちは「[[C言語]]の[[グローバル変数]]は散々禁止してきたのに[[オブジェクト指向]]の[[メンバ変数]]はいいのか」などと[[オブジェクト指向言語]]の信者たちを批判している。 | [[関数型言語]]の信者たちは「[[C言語]]の[[グローバル変数]]は散々禁止してきたのに[[オブジェクト指向]]の[[メンバ変数]]はいいのか」などと[[オブジェクト指向言語]]の信者たちを批判している。 | ||
[[category:プログラミング]] | |||
[[ | [[category:関数]] | ||
2026年7月21日 (火) 02:30時点における最新版
純粋関数とは、「入力値は引数だけ」の関数のことです。基本的にある引数に対して常に同じ戻り値を返します。
C言語でいえば関数内部でグローバル変数を一切使っていないものを指します。C言語の入門書に書いてある「グローバル変数は極力使うな」というやつを実践したものです。
なお、関数内部でファイルやデータベースや乱数などを利用している場合は、それらも一種の入力であるため、それらを利用した時点で純粋性は失われて一定の戻り値にならない場合があります。
関数型言語の信者たちは「C言語のグローバル変数は散々禁止してきたのにオブジェクト指向のメンバ変数はいいのか」などとオブジェクト指向言語の信者たちを批判している。