名前をつける、という魔法

よみもの+手を動かす時間:およそ25分

90、90、90、と書きたくない

前のレッスンの最後で、コンピュータは「おおきい まる」が分かりませんでした。大きさを伝えるには数を使います。でも、同じ数を何度も書くのは、書く側がつらい。

まず、名前を使わないプログラムを見てください。

にわ語
おおきさ を 30 にする
まる を かく
40 すすむ
まる を かく
40 すすむ
まる を かく

ここに絵があらわれます

Ctrl+Enter でも実行できます

40 が2回出てきます。この間隔を 60 に変えたくなったら、2か所を直すことになります。3行ならまだしも、100行のプログラムで20か所だったら?

値に、名前をつける

にわ語では、こう書けます。

にわ語
40 を かんかく とよぶ
おおきさ を 30 にする
まる を かく
かんかく すすむ
まる を かく
かんかく すすむ
まる を かく

ここに絵があらわれます

Ctrl+Enter でも実行できます

1行目の 40 を かんかく とよぶ が、このレッスンの主役です。意味はそのまま、「40 という値を、これからは『かんかく』と呼ぶことにします」という宣言です。

宣言したあとは、かんかく と書いた場所すべてが、40 として読まれます。試しに1行目の 4080 に変えて実行してください。1か所変えただけで、全部が変わる。これが名前の力です。

「箱」ではなく「あだ名」

多くの入門書は、これを「変数という箱に値を入れる」と説明します。この庭では、その説明をしません。値に名前(あだ名)をつける、と考えてください。

なぜそこにこだわるのか。あだ名で考えると、次の現象が自然に分かるからです。

にわ語
100 を たかさ とよぶ
たかさ を おおきさ2 とよぶ
たかさ と いう
おおきさ2 と いう

Ctrl+Enter でも実行できます

同じ 100 という値に、たかさおおきさ22つの名前がついています。人に本名とあだ名があるのと同じで、値と名前は別のものです。「箱」で考えると、ひとつの値が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か所で済む
  • よい名前は、未来の読み手への手紙