2010年4月26日月曜日

「関数」と「変数」は数関連じゃない時も多いもので。。

プログラミングを覚え始めて、最初に引っかかったことの一つが、「関数」「変数」というものについてでした。

「関数っていったいなんなんだろう?」「変数ってなんじゃ?」と。

これらの用語に「数」という文字が使われていて分かりにくくなっている面があると、
理解できた後で思ったものです。

元々の英語は、
「関数」は単に「function」(=機能)、
「変数」は単に「variable」(=可変物)、
ですから、
「数」に縛られる語感はありません。

日本語を母語とする人で、プログラミングを習得しようとする際、
この用語で引っかかる人は、自分以外にもけっこういそうな気もします。
(もともと「関数」という用語は、
中国の人が、「function」という読みを漢字に当て嵌め、
意味的にも通じる、ということから名づいたようですね。
「ction」=「数」というわけか。。orz)

演算処理は、つきつめれば「0」と「1」という二つの数字による計算になりますから、
コンピューター的には「数」として計算しているのは間違いありませんが、
慣れていない人間にそのように認識しろ、というのは無理ですしね。

今更、「変数」や「関数」という日本語を別名にするのは難しいかもしれませんが、
プログラミング、という素晴らしい道具の入門時に、多くの日本人(中国人も?)がより早く使いこなせるようになるよう、
基本中の基本のこれらの二つの用語が、分かりやすくいつも解説されることを望むばかりです。

解説の丁寧な本をいくつか読んでやっと理解できた、理解の遅いワタクシメからの切なる願いでした。

(以下は、もし「関数」「変数」というのが、少し前の自分のように分からない方にちょっと解説です。あくまで、へっぽこな初学者による解説なので、参考程度にとどめてくださいませ。使ってみたい言語の初心者用解説には、普通ちゃんと書いてあると思います。ネット上にもたくさん情報がころがっております。。

■「変数」というのは、いろいろなものを一時的に入れておける箱のようなものです。
「いろいろなもの」というのは、数(整数や少数や正の数、正と負の数、2進数、8進数、16進数等など)であったり、文字(短いものから、ものすごく長いものまで)であったり、「正しいか間違いか(TRUEかFALSE)」という二者択一判定のための値であったり等など、色々な「値」のことです。
 「値」というとまた「数」を思い浮かべるかもしれませんが、コンピューター君たちには、「文字」なども値として最終的に把握されます。ですので、この場合の「値」も、数のみならず、文字等も含みます。

 ちなみに「=(イコール記号)」を使って、「右の値を左の変数に代入する」というのが一般的だと思います。(難しい言語ではそうでもないかもしれませんが、自分が触っている言語はだいたいそうです。)
 この「=」が、「等価」の意味でなく、「代入」であるというのが、初めてのころに引っかかりやすいところの一つです。

 さらにちなみに、「等価」かどうか比べるには「==」とイコールを二つ重ねるのが一般的です。

 変数には、文字や整数、小数等、色々な型の値を代入できますが、それらの「型」を定義する言語と、最近では定義せずとも使えてしまう言語があります。

■「関数」とは、function=機能、というように、何かの機能をもったミニプログラムとでも言えるものです。
 「何らかの処理」とも言えるでしょう。
 各言語には、便利な機能が「関数」として用意されており、それらを使えば、色々なことができます。
 また、独自に関数を定義することもでき、色々な機能を便利にまとめて、再利用が簡単にできるようになっています。
 詳しくは、それぞれの言語の解説書や、解説文などで。。。

 失礼しました~

0 件のコメント: