わりとおおざっぱな人は、「関数とはそういうもんだ」と納得して使い方を勉強できます。
関数の使い方自体は、それほど難しくないと思います。
しかし、厳密に突き詰めて考える人には、「そもそもなんなのか」ということが気持ち悪く、先に進めないようです。
関数は数ではなく対応
まず、「関数」という熟語のネーミングに違和感を覚える人がいます。「関数」を「小数」「分数」など「数」と並列にイメージしてしまうのです。
しかし「関数」は、「小数」や「分数」のような、量や大きさ、順序などを表現するものではありません。
関数には「ある変数に依存して決まる値との対応を表す式」という定義があります。
y=f(x)=3x+4
上の式はxとyの対応を表していて、たとえば「1と7」や「2と10」が対応させられます。
実は「関数」は英語では「function」ですが、辞書で調べると「機能」という訳が一番に出てきます。
どうして「対応関係」と「機能」が、「function」という同じ言葉で表されているのでしょうか。
ジューサーにくだものを入れる
私のイメージだと、関数はジューサーみたいなものです。例えばオレンジジュースを作りたいときには、ジューサーの中にオレンジを入れてボタンを押します。
固体だったオレンジが、液体に変わって出てくるのです。
ジューサー(オレンジ)→オレンジジュース
あるいはイチゴとバナナとリンゴを入れてボタンを押すと、ミックスジュースを作ることができます。
ジューサー(イチゴ,バナナ,リンゴ)→ミックスジュース
ジューサーの機能を一般化すると、中に材料xを入れてボタンを押すと、その結果として対応するジュースyが出てくるわけです。
ジューサー(材料x)→ジュースy
あえて、関数の書き方に習って書いてみました。
入れる変数と結果の変数
関数も「何かを入れると別の何かが出てくる機械」のようなものです。関数に入れるもの、出てくるものをまとめて「変数」と呼びます。
y=2x
とくに入力にあたる変数xを「引数(argument)」と言います。
また、出力にあたる変数yを「戻り値(return value)」と言います。
数学の関数は、式で表現されているので、どのように計算するかが一目瞭然です。
しかし、コンピュータの関数は内部の複雑な処理は隠してあります。
そこで、関数の学習では、まずは「使い方」、つまり引数をどういう順番で入れるのかを覚えることが大事です。
ちなみに数学の関数ではもともと数値を対象にしていましたが、コンピュータでは数値だけでなく文字列などもいろいろなものを関数に与える事ができます。