伊藤清徳の垂直落下式ムーンサルトプレス伊藤清徳の垂直落下式ムーンサルトプレスPerlとかPHPとかMySQLとか...がんばっても8割だ。Comments今日は前回に引き続きお友達のWEBデザイナーさんからの依頼で、プログラミングにおける「関数」とは何ぞやという話をしてくれということで書いてみます。高卒以上のレベルの人でプログラム言語に慣れ親しんでない人が「関数」と聞くと、数学で習った「二次関数」とかの「関数」を思い出すと思います。※「高卒レベルの人」でと誤解される書き方をしていました。正しくは上記の通り「高卒以上のレベルの人」です。数学で習った「関数」は、ちょっと意味は似ているところがありますが、この際きれいさっぱり忘れたほうがいいです。いうことで数学の関数は忘れて話をすすめます。関数っていうのはプログラミング言語やプログラマーによって結構考え方や概念が異なりますので、BASIC(VBではない)やPerlで育ってきた僕の個人的な考えで書いていきます。お友達デザイナーがActionScriptを勉強していて躓いたらしいですので、僕はASが書けないってことでJSで書いていきます。Javascriptの入門向け命令辞典を読んでいて、たとえば、「特定の文字列をURLエンコードしたい」というときは以下のような命令を書けと書いてあることがあります。);これを実行すると、「%E6%96%87%E5%AD%97%E5%88%97」と表示されると思います。encodeURIComponent()という命令を使うことで、「文字列」という文字列を簡単にURLエンコードできます。実はこの「encodeURIComponent()」が「関数」です。関数とは、ざっくりと簡単に言えば、決まった手順を一まとめにしておいて、再利用できるようにしたものです。みたいなことが書いてあります。もって、間違いじゃないんですけど、その前に、自分で作らなくても、Javascriptには最初から前述「encodeURIComponent()」のような便利な関数はたくさん用意されているんです。他にdocument.write()alert()confirm()window.close()などなどあります。やって書いてみると、どうでしょうか?プログラミングの初心者でも、これまで書いたプログラムのコードの何割かは関数を使っている部分で埋められているのではないでしょうか?関数は現在の発展したプログラミングにおいては、とても有用なもので、プログラミング言語によって最初からたくさんの関数が用意されています。前述の「function」を使った「自分で作る関数」は、最初から用意されている関数のほかに、決まった命令をまとめておいたり、それを再利用したりしたい時に作る関数で、一般的に「ユーザー定義関数」などと呼ばれます。言語が最初から用意している関数に対して、自分で作る関数だから「ユーザー定義関数」。分かりやすいネーミングです。※完全な低級言語やC言語のような低級に近い言語は関数は少なくなるかも。※window.close()などはオブジェクトのメソッドなので厳密には「最初から用意された関数」ではない。↑ここの※部分はお友達デザイナは無視したほうがいいですwwwwまず、関数の使いどころです。ここからは入門書を片手に読んでください。前述の通り、関数は決まった手順をまとめておくもの、そしてそれを再利用できるようにしたものです。料理で言うと、ダシとかスープみたいなものかな。前もって「一番ダシ」とか用意しておくことがあると思います。関数は、それに近いかな。「引数」は、そこに醤油や塩などの追加調味料や、メインとなる食材など、目的とする料理に合わせて何かを追加してひとつの料理として完成させたり、また違うひとつの材料にしていったりして行くわけですね。材料を入れたりして加工したものが「返り値」に近いですかね。関数を使わない例です。