「=」で困った話
真っ先にプログラミングで困ったのは、この「=」。
小学生のときに算数を習い始めてからウン十年とつきあっているものです。
その小学生のときから使っている「=」って、こういう使い方が多いと思います。
1 + 1 = 2
1に1をたすと2と同じ(になる)
繰り返して言っているだけに見えますが、
1+1(原因) → 2(結果)
という流れになってます。
言い換えれば、
左辺 「は」 右辺「と同じ(になる)」
という構成です。
ところが、プログラムの「=」ってこういう使い方ではないのです。
「=」は代入演算子。
難しい漢字をつかってしまいましたが、
プログラミングでは
左辺 ←(に) 右辺(を代入する)
になります。
最初これを聞いたときに「ふぅーん」としか思わずさらっと
しか聞いていませんでしたが、のちのちサンプルのプログラムを
読むときにこんがらがりました。
例えば、
a = a + b という プログラムがあったとします。
(aは数学でいう、変数だと思ってください)
数学の「=」のつもりのままで読むとおかしいんですよね、この式。
「え? なんで a とa+ bが同じになるの」
「aがどうしてa+b になるの」
っていう疑問にかられ、
「わからない!どして!どしてなのぉ」と叫んでしまいます。
でも、プログラムでは
左辺のaという場所 「に」 a+bを置き換える
ということをやっているだけなんです。
例として
a = 8 + 9
print (a)←()内を出力せよという意味です
というプログラムを書くと、
画面に現れるのは 17です。
—————
だったら、
いっそのこと 8+9 = a
print (a)だっていいじゃん?って思いませんか?
なんで、プログラムはこんなわかりにくいことになっているのか?
と考えてみました。
「プログラムを書く」というのは、機械にわかりやすい指示を出すということです。
この機械は、蛇みたいなもの。
この蛇は、餌をひとかたまりずつだけ噛むという特徴があります。
さらに、その蛇は、「=」の左辺は覚えていられるけれど、
右辺は「覚えていられない」という特徴があります。
もし、 8+ 9 = a
print (a)
と書いたとすると、
蛇は、8+9は覚えていても、aは覚えていられないので、
aを出力せよ、といわれても「はぁ?aってなんですの?」
とわからなくなってしまうのです。
機械という蛇に餌を食べてもらうために、蛇に食べやすい形にしなきゃいけない
というのはすこししんどいかもしれません。
でも、最初のうちは「=」は、
と思い込むことで、機械の言葉のルールに慣れていくのではないでしょうか?
っていうより、わたしがそうでした。はい。