名前をつける、という魔法
90、90、90、と書きたくない
前のレッスンの最後で、コンピュータは「おおきい まる」が分かりませんでした。大きさを伝えるには数を使います。でも、同じ数を何度も書くのは、書く側がつらい。
まず、名前を使わないプログラムを見てください。
おおきさ を 30 にする まる を かく 40 すすむ まる を かく 40 すすむ まる を かく
ここに絵があらわれます
Ctrl+Enter でも実行できます
40 が2回出てきます。この間隔を 60 に変えたくなったら、2か所を直すことになります。3行ならまだしも、100行のプログラムで20か所だったら?
値に、名前をつける
にわ語では、こう書けます。
40 を かんかく とよぶ おおきさ を 30 にする まる を かく かんかく すすむ まる を かく かんかく すすむ まる を かく
ここに絵があらわれます
Ctrl+Enter でも実行できます
1行目の 40 を かんかく とよぶ が、このレッスンの主役です。意味はそのまま、「40 という値を、これからは『かんかく』と呼ぶことにします」という宣言です。
宣言したあとは、かんかく と書いた場所すべてが、40 として読まれます。試しに1行目の 40 を 80 に変えて実行してください。1か所変えただけで、全部が変わる。これが名前の力です。
「箱」ではなく「あだ名」
多くの入門書は、これを「変数という箱に値を入れる」と説明します。この庭では、その説明をしません。値に名前(あだ名)をつける、と考えてください。
なぜそこにこだわるのか。あだ名で考えると、次の現象が自然に分かるからです。
100 を たかさ とよぶ たかさ を おおきさ2 とよぶ たかさ と いう おおきさ2 と いう
Ctrl+Enter でも実行できます
同じ 100 という値に、たかさ と おおきさ2、2つの名前がついています。人に本名とあだ名があるのと同じで、値と名前は別のものです。「箱」で考えると、ひとつの値が2つの箱に同時に入っている、という変な絵になってしまいます。
⟡ よりみち:「変数」という訳語
英語では variable——「変わりうるもの」という意味です。明治の数学者たちが「変数」と訳しました。プログラミングでは数以外(文字列や色)にも名前をつけるので、「変な数」というより「付けかえられる名前」と捉えるほうが実態に合っています。ことばの輸入には、いつもすこし無理がともないます。
名前の、付け替え
つけた名前は、別の値に付け替えられます。書き方が変わることに注意してください。
10 を ながさ とよぶ ながさ と いう ながさ を ながさ + 15 にする ながさ と いう
Ctrl+Enter でも実行できます
- はじめての名づけ:
〜 を なまえ とよぶ - 付け替え:
なまえ を 〜 にする
3行目の ながさ を ながさ + 15 にする は、はじめて見ると奇妙な文です。日本語として読み下せば「いまの『ながさ』に15を足したものを、あらためて『ながさ』と呼びなおす」。あだ名の引っ越しです。
ところで、いろ おおきさ ふとさ という名前は、にわ語に最初から住んでいます。だから付け替えだけで使えます。
いろ を あか にする ふとさ を 6 にする まる を かく
ここに絵があらわれます
Ctrl+Enter でも実行できます
使える色のことば:あか だいだい き みどり そら あお むらさき もも ちゃ くろ しろ はい
名前は、設計である
名前は x でも a1 でも動きます。でも かんかく と名づけたから、3週間後のあなたが読んでも意味が分かる。よい名前を選ぶことは、未来の読み手(たいてい自分)への手紙です。プロのプログラマがコードを書く時間の多くは、実は名前を考える時間です。
✎ 演習:一輪の花を、名前で組み立てる
下のプログラムは動きますが、同じ数字があちこちに散らばっています。「はなのいろ」「はなびらのおおきさ」など、名前をつけて整理してください。整理できたら、名前の行だけを変えて、色ちがい・大きさちがいの花を咲かせてみてください。
いろ を もも にする おおきさ を 50 にする まる を かく 30 すすむ まる を かく ひだり へ 120 まわる 30 すすむ まる を かく
ここに絵があらわれます
Ctrl+Enter でも実行できます
ヒント1(考え方)
くりかえし出てくる値はどれですか。30 が2回あります。それは何の30でしょう。意味が言えたら、それがそのまま名前になります。
ヒント2(かたち)
プログラムの先頭に 30 を はなびらかんかく とよぶ のような行を置いて、本文の 30 を はなびらかんかく に置きかえます。
こたえ(の一例)
30 を かんかく とよぶ を先頭に置き、30 すすむ を2か所とも かんかく すすむ にする。さらに いろ を もも にする の もも を すきないろ という名前にしてもよいでしょう。
あなたの名前の付け方がこれと違っても、動いて、意味が読み取れるなら、それが正解です。
このレッスンで分かったこと
- 名づけ:
値 を なまえ とよぶ/ 付け替え:なまえ を 値 にする - 変数は「箱」ではなく値へのあだ名。同じ値に複数の名前もつけられる
- 名前を使うと、変更が1か所で済む
- よい名前は、未来の読み手への手紙