「関数」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
 
1行目: 1行目:
'''関数'''(英語:function)とは、ある変数に対して一定の答えを返す計算式のことである。
+
'''関数'''([[英語]]:function)とは、ある変数に対して一定の答えを返す計算式のことである。
  
 
== 概要 ==
 
== 概要 ==
 
[[プログラミング言語]]の世界でいう「関数」とは、[[引数]]だけが外部を知り得る唯一の手段であり、[[戻り値]]だけが外部に情報を伝えれる唯一の手段である[[サブルーチン]]のことである。
 
[[プログラミング言語]]の世界でいう「関数」とは、[[引数]]だけが外部を知り得る唯一の手段であり、[[戻り値]]だけが外部に情報を伝えれる唯一の手段である[[サブルーチン]]のことである。
  
関数とは本来は算数で登場する概念であるが、[[コンピューター]]はあくまで[[計算機]]であり、[[テキスト]]も[[CG]]も[[音声]]も[[コンピューター]]の内部では数字と計算で成り立っているので「関数」の概念がピッタリ適合するという。
+
関数とは本来は[[算数]]で登場する概念であるが、[[コンピューター]]はあくまで[[計算機]]であり、[[テキスト]]も[[CG]]も[[音声]]も[[コンピューター]]の内部では数字と計算で成り立っているので「関数」の概念がピッタリ適合するという。
  
 
なお、[[C言語]]などの日本語の教科書では[[サブルーチン]]を指して「関数」という単語が使われる風兆があるが、これらは[[引数]]のみならず[[大域変数]]などの外部の影響を受ける「[[サブルーチン]]」であって「関数」ではない。最近ではこの悪しき風潮も若干改善され、方法論を意味する「[[メソッド]]」という呼び方も定着しつつある。
 
なお、[[C言語]]などの日本語の教科書では[[サブルーチン]]を指して「関数」という単語が使われる風兆があるが、これらは[[引数]]のみならず[[大域変数]]などの外部の影響を受ける「[[サブルーチン]]」であって「関数」ではない。最近ではこの悪しき風潮も若干改善され、方法論を意味する「[[メソッド]]」という呼び方も定着しつつある。

2015年11月28日 (土) 09:03時点における最新版

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

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

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

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

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

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

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

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

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

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

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

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

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

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