関数

提供: MonoBook
2015年11月28日 (土) 09:03時点におけるimported>Administratorによる版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関数英語:function)とは、ある変数に対して一定の答えを返す計算式のことである。

概要[編集 | ソースを編集]

プログラミング言語の世界でいう「関数」とは、引数だけが外部を知り得る唯一の手段であり、戻り値だけが外部に情報を伝えれる唯一の手段であるサブルーチンのことである。

関数とは本来は算数で登場する概念であるが、コンピューターはあくまで計算機であり、テキストCG音声コンピューターの内部では数字と計算で成り立っているので「関数」の概念がピッタリ適合するという。

なお、C言語などの日本語の教科書ではサブルーチンを指して「関数」という単語が使われる風兆があるが、これらは引数のみならず大域変数などの外部の影響を受ける「サブルーチン」であって「関数」ではない。最近ではこの悪しき風潮も若干改善され、方法論を意味する「メソッド」という呼び方も定着しつつある。

ちなみにC言語などでも上記の関数の条件を意識してソースコードを書けば関数になる。さらにプログラマーに対して無条件で上記の関数の条件を強制するプログラミング言語純粋関数型プログラミング言語などと呼ぶ。

利点[編集 | ソースを編集]

関数は入力と出力がすべてであり、それ以外の変数の影響を受けないので単体テストが桁違いに作りやすい。

関数は入力と出力がすべてであり、その部分の差し替えが容易である。

関数は入力と出力がすべてであり、関数の内部は第三者の影響を受けないので並列化しやすい。

欠点[編集 | ソースを編集]

関数ガチガチにするとキッチリカッチリとプログラミングしていないとピクリとも動かないことが多い。 よって、とりあえず動くレベルのものを即席で作って、速攻で逃げるという逃げ道がない。 いわゆるWrite once, run awayには向かない。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]