「関数」の版間の差分
imported>News4vip (ページの作成:「'''関数'''(英語:function)とは、ある変数に対して一定の答えを返す計算式のことである。 == 概要 == プログラミング言語...」) |
imported>Administrator |
||
(同じ利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
− | '''関数''' | + | '''関数'''([[英語]]:function)とは、ある変数に対して一定の答えを返す計算式のことである。 |
== 概要 == | == 概要 == | ||
[[プログラミング言語]]の世界でいう「関数」とは、[[引数]]だけが外部を知り得る唯一の手段であり、[[戻り値]]だけが外部に情報を伝えれる唯一の手段である[[サブルーチン]]のことである。 | [[プログラミング言語]]の世界でいう「関数」とは、[[引数]]だけが外部を知り得る唯一の手段であり、[[戻り値]]だけが外部に情報を伝えれる唯一の手段である[[サブルーチン]]のことである。 | ||
− | + | 関数とは本来は[[算数]]で登場する概念であるが、[[コンピューター]]はあくまで[[計算機]]であり、[[テキスト]]も[[CG]]も[[音声]]も[[コンピューター]]の内部では数字と計算で成り立っているので「関数」の概念がピッタリ適合するという。 | |
なお、[[C言語]]などの日本語の教科書では[[サブルーチン]]を指して「関数」という単語が使われる風兆があるが、これらは[[引数]]のみならず[[大域変数]]などの外部の影響を受ける「[[サブルーチン]]」であって「関数」ではない。最近ではこの悪しき風潮も若干改善され、方法論を意味する「[[メソッド]]」という呼び方も定着しつつある。 | なお、[[C言語]]などの日本語の教科書では[[サブルーチン]]を指して「関数」という単語が使われる風兆があるが、これらは[[引数]]のみならず[[大域変数]]などの外部の影響を受ける「[[サブルーチン]]」であって「関数」ではない。最近ではこの悪しき風潮も若干改善され、方法論を意味する「[[メソッド]]」という呼び方も定着しつつある。 | ||
25行目: | 25行目: | ||
* [[関数型プログラミング言語]] | * [[関数型プログラミング言語]] | ||
** [[純粋関数型プログラミング言語]] | ** [[純粋関数型プログラミング言語]] | ||
+ | * [[!]] | ||
== 参考文献 == | == 参考文献 == |
2015年11月28日 (土) 09:03時点における最新版
関数(英語:function)とは、ある変数に対して一定の答えを返す計算式のことである。
目次
概要編集
プログラミング言語の世界でいう「関数」とは、引数だけが外部を知り得る唯一の手段であり、戻り値だけが外部に情報を伝えれる唯一の手段であるサブルーチンのことである。
関数とは本来は算数で登場する概念であるが、コンピューターはあくまで計算機であり、テキストもCGも音声もコンピューターの内部では数字と計算で成り立っているので「関数」の概念がピッタリ適合するという。
なお、C言語などの日本語の教科書ではサブルーチンを指して「関数」という単語が使われる風兆があるが、これらは引数のみならず大域変数などの外部の影響を受ける「サブルーチン」であって「関数」ではない。最近ではこの悪しき風潮も若干改善され、方法論を意味する「メソッド」という呼び方も定着しつつある。
ちなみにC言語などでも上記の関数の条件を意識してソースコードを書けば関数になる。さらにプログラマーに対して無条件で上記の関数の条件を強制するプログラミング言語を純粋関数型プログラミング言語などと呼ぶ。
利点編集
関数は入力と出力がすべてであり、それ以外の変数の影響を受けないので単体テストが桁違いに作りやすい。
関数は入力と出力がすべてであり、その部分の差し替えが容易である。
関数は入力と出力がすべてであり、関数の内部は第三者の影響を受けないので並列化しやすい。
欠点編集
関数ガチガチにするとキッチリカッチリとプログラミングしていないとピクリとも動かないことが多い。 よって、とりあえず動くレベルのものを即席で作って、速攻で逃げるという逃げ道がない。 いわゆるWrite once, run awayには向かない。