かとのぼのマイコード・マイライフ

プログラミング初心者とアプリの個人開発者向けのブログ。たまに銭湯

プログラミングのFunction(関数)とは?まずはイメージで理解しよう

この記事をシェアする

プログラミング言語での学習では必ず「Function」という概念が登場します。

この「Function」は日本語だと「関数」と訳されています。私はこのプログラミングの「関数」が最初本当に意味が不明でした。そのため、今回はプログラミング初心者のためにFunctionについて解説します。

Functionとは?

Function(関数)を日本語で調べると

関数(ファンクション)とは - IT用語辞典 e-Words

関数とは、コンピュータプログラム上で定義されるサブルーチンの一種で、数学の関数のように与えられた値(引数)を元に何らかの計算や処理を行い、結果を呼び出し元に返すもののこと。

 正直、意味がわかりませんね…。

 

二番目に出てくるサイトでの説明は以下です

【JavaScript入門】function(関数)の使い方、呼び出し・戻り値など総まとめ! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト

function(関数)とは、様々な処理を1つにまとめて、名前をつけることができるものです。単調な処理を1つにまとめて、どこからでも使えるように効率化するという目的でよく使われています。 1つにまとめることで、同じ処理を何度も書く必要がなくなりミスが減るうえ、別のプログラムに使いまわすことも可能になります。 また、function(関数)は値を受け取ったり、何らかの処理を行った値を返すことも可能なので、最小のコードで最大限のパワーを引き出せる力を秘めています。

どうでしょうか?わかったようなわからなかったような…。

用語や概念の説明がわかりにくい場合は、実はあなたに問題がある訳でなく、解説自体がその機能についての説明がされているだけのことがあります。

初心者が理解するには、なぜこの機能が生まれたのか?と言った背景から理解すると断然に理解度も忘れない可能性も高まります。

 

Functionのイメージをつかもう

ということで、わかりやすくイメージできる例を出します。

 

あなたは一軒家に住んでいます。庭には美しい芝生が茂っています。あなたが大切に手入れをしている自慢の庭です。

さて、あなたは毎日芝生に水やりをしています。

水やりのため、あなたはスプリンクラーを購入しました。スプリンクラーは、スタートボタンを押すと水を出します。そして、終了ボタンを押すと水の噴射が終わります。

あなたは毎朝、スプリンクラーを作動するスタートボタンを押して、30分たっぷり芝生に水を与えた後、スプリンクラーの停止ボタンを押します。

図にするとこうなります。

水やりの図

さて、あなたは毎日この作業をしていましたが、ある時こう思いました。

「最高にめんどくさい…」と。

なぜならあなたは、まず朝起きて芝生の水やりのためにスタートボタンを押さないと行けなくて、しかも30分待った後、スプリンクラーの停止ボタンを押さなくてはならないのです!

もし停止ボタンを押すのを忘れたら、水が出しっぱなしになり、美しい芝生がダメになったり水道料金の請求がとんでも無いことになってしまいます。

そこであなたは、この水やりの機能を全部まとめて行う手順を作成しスプリンクラーが自動で行えるようにしようと思い立ちました。つまり、スプリンクラーの水やりのスタート、30分の水やり、水やり後のスプリンクラーの終了を一連の動作としてプログラミングしました。

functionの説明

スプリンクラーが行うべき一連の動作を二重括弧で囲み、その一連の動作にはスプリンクラー(sprinkler)という名前をつけてました。

そうです。これがFunctionです。

スプリンクラー

つまり、Functionとは、何らかの一連の動作を登録したいときに使うものなのです。プログラミング言語によって形は若干変わりますが、上記の図のように

Function  + その機能を象徴するような名前 +  (かっこ )  + {二重括弧 }

というような形で表現します。

これで、あなたはスプリンクラーにsprinkler()と命令すれば、スプリンクラーは登録された機能通りに水やりを初めて、30分後に水やりを自動的に終了してくれます。

Functionを定義しておけば、いつでも使えるというのはこういうことです。

 

 Functionは料理のレシピ

他にも例をあげるなら、料理のレシピだと思うとわかりやすいでしょう。

料理のレシピには、料理名と料理を作るための手順が書かれていますね。

Function名が料理名で、Functionの中身が料理の手順です。

パソコンに料理名と料理の手順を一度レシピとして登録しておけば、料理名を教えるだけでロボット(プログラミング)は勝手に料理を手順通りに作ってくれます。

 

パスタ

 

 

 

ということで、Functionの具体的なイメージはついたと思います。すごく簡単な話でしたね。

余談ですが、私がいつも不満に思うのはなんでプログラミングの Functionを「関数」なんて訳し方をしたんだろうということです。

関数って一番最初に私たちが触れるのは数学の「関数」です。そのイメージに引っ張られるから、プログラミングのFunctionもなんか難しいものに思ってしまいます。

けど実際は全然難しくなくて、説明のように、Functionは何かの手順書だったり料理のレシピみたいなものなので、本当は恐れることはありません。

そのため私はFunctionは「関数」というより、「機能」とか、「手順」とか「レシピ」のような言葉で捉えています。

このFunctionは、ある程度コードを書いていくとこれでもかと言うくらい使用するようになります。なぜなら、プログラミングの世界ではなるべく同じコードを書かない方が良いと言うルールがあり、なん度も繰り返すコードは大体Fucntionにしてまとめるからです。

以上のように、Functionは便利な機能であると同時に、絶対にプログラミングで使う概念と技術なので、苦手意識なく取り組みましょう!