概要
数学で習う。またプログラムを組むプログラミングでもよく使う。
その名の通り2つの数の関係を表す。例えばy=3x+4などのような式はxの値が決まればyの値も決まる。この時、yはxの関数であると言い、xは変数と呼ばれ、y(x)=3x+4のような表現がなされる事もある。逆にyを変数として、xをyの関数と見る事もできる(逆関数)。
関数は実数範囲で考えることが多い。複素数範囲で考えるときにはグラフではなく微積分を中心に考える。これは複素数範囲で考えるとグラフが四次元以上になってしまうためである。
日常にも関数と同じようなものは多数存在する。例えば「料金=200×利用時間+500」などがある。利用時間がわかれば料金が特定されるため、これも関数といえる。
グラフが繫がっていない関数(階段関数など)や変数が2つ以上な関数(多変数関数)、変数が行列である関数も存在する。
類義に写像。
名称について
元々は中国語由来で「函数」と表記されていたが、常用漢字的な都合のため日本語では「関数」となった。
しかし「函数」という表記にも根強い人気があり、それはWikipediaにおいてどちらにするかで編集合戦が広範囲に亘って繰り広げられた程である(外部リンク参照)。
なお、「函」という漢字は現在は使用機会が少なく、馴染みの薄いものとなっているが、「箱」を意味しており、ブラックボックス的なイメージであるという。そのため、関数の概念を説明する際にブラックボックスが用られる場合がある。他の使用例は「函館」「投函」「函谷関」など。
英語ではFunction(ファンクション)と呼ばれ、「函」はこの「Fun」の部分の音訳でもあるという説がある(「函」は中国語読みでは「ハン」が近い)。
このFunctionのfをとってf(x)という表記がよく用いられる。このfは「入力値に対してfという操作をする」を表す記号なので、{f(x)}^2とf^2(x)では全く意味が異なる(左はf(x)の二乗、右は合成関数(f⚪︎f)(x)=f(f(x))を表す)。なお、fが「AをBに対応させる操作」であることを、f:A→Bのように表す。これはf(A)=Bと同じ意味である。
プログラミングにおける関数
プログラミングでは若干意味が異なり、通常の関数と同様の性格ものも存在しているが(例えば、絶対値を求めるABS関数など)、サブルーチンの意味合いを含んでいたり、サブルーチンと同義だったりもする。
サブルーチンというのは、例えば「今日は飯食って糞して寝る、明日も飯食って糞して寝る、明後日も飯食って糞して寝る」という表現に対して、「A=飯食って糞して寝る」と置けば「今日はA、明日もA、明後日もA」となり簡略化されるが、このAのようなものを言う。
つまり、お決まりの動作を別枠で定義し、一言で表せるようにしたものであり、プログラムの中にある小さなプログラムのようなイメージ。
これにより、プログラムが簡潔になったり、サイズが節約できたりする。
この時点では、いわゆる関数とは似ても似つかないが、サブルーチンは通常、入力として引数を、出力として戻り値を定義する事が可能であり、これらを定義する事によって通常の関数のような様相となる。
例えばfという関数があった場合、y=f(5)と書くと、5を引数としてfに渡して、その戻り値をyに代入するという形となる。
プログラミング言語によっては、関数とサブルーチンは区別される。
プログラミング言語のタイプによっては、マクロと呼ばれる似て非なるものも存在。
関連イラスト
関連タグ
一次関数 二次関数 三次関数 整関数 指数関数 対数関数 三角関数 双曲線関数 分数関数 無理関数 楕円関数 ガンマ関数 ゼータ関数
波動関数 偶関数 奇関数 複素関数 逆関数 合成関数 階段関数 陰関数 陽関数 確率密度関数
数学 数字 プログラミング グラフ 曲線 図形 方程式 微積分