Zenn
💡

「 関数とは何か。」 がわからない人に向けて

2025/03/28に公開

http://kemii.sakura.ne.jp/webpage/pages/what_is_function/code.html

↑ きれいに装飾したもの(AIにきれいにしてもらいました)

関数とは

関数。

数学で見たy = xみたいなやつ。

今回はこれについて考える。

そもそも関数とは何だろうか?

関数は、変換する装置のことをいう。

例えば、同じ値段の商品を2個買ったらいくらになるかを知りたいとする。

2ko_nedanという関数を作る。

2ko_nedanに100円と入れると、200円が返ってくる。

これを

払う金額 = 2ko_nedan(値段)

と表記することにする。

払う金額には200が入っていてほしい。

たぶん、中身はy = 2xなのだろうが、中身はどのように定義されていてもいい。
(払う値段 = 2 × 値段 )

意図したものが返ってくればいいわけだから。

なので、4X / 2 + 100 - 100

みたいな中身でも問題ない。

効率的ではないけれど。

.

.

.

え??

2個だけとか限定的すぎるって??

だったら、掛け算という関数を作ろう。

わかりやすいように

kakezan(値段 , 個数);

とする。

中身はどうなる??

y = 値段×個数;

だろう。

ここで強調しておきたいのは、関数は変換してくれれば、その中身が何であれ別に問題がないということである。

そして、関数はその中身をみえないようにして、理解しやすいようにする機能を持っている。

一度中身を作ってしまえば、あとは、その関数に渡したら、値が返ってくる。

ここで、以下の同じ値を返す関数を考える。

pi()

円周率を返す関数だ。

渡す値はない。

いったん中身を考えず、この関数を呼び出したとする。

すると1が返ってきた。

円周率は3.14なので、全然違う。

なので、この関数に円周率がもう少し大きいことを教えてあげる。

そうすると次は3が返ってくる。

もう少し大きいよ。

と教えると、次は4が返ってきた。

少し小さくしてというと、3.5が返ってきた。

こんな感じで、関数の中身を自動的に変更してくれるものをAIと呼ぶ。

この過程は、学習と呼ばれ、目標値との違いをもとに、値を変化させる機構を言う。

まとめ

関数は、変換装置。

関数と実際の中身は分離できる。

関数の中身をいい感じに変更してくれるのがAI。

ここから先は、読みたい人だけ

ちょっと深く掘る

kakezan(値段, 個数)

y = 値段 × 個数

掛け算の関数を作ったけれど、掛け算は足し算の組み合わせです。

なので

kakezan(

合計を記録するものを用意し、
合計に 値段 を 個数 分だけ、足したものを返す関数と定義する

)

が正しいわけです。

足し算もまた、関数なので、1 + 1 の場合2になるとか、1+2の場合は3になるとかが決まっています。

足し算の関数を呼び出すことで計算をしています。

関数の中身は、たいていの場合、より小さな関数の集まりによってかかれることが多いです。

関数は、渡す値と、返してほしい値を決め、返される値を信用することで、

高度な処理を実現するというものです。

Discussion

ログインするとコメントできます