日本語らしさ~「それ」

なでしこの特徴は「日本語らしさ」であり、「分かりやすさ」です。「プログラミング言語の壁」とも言える難解な英単語や不可解な記号の意味など、こうした難しさがプログラムに現れないようにと工夫をしたのです。

なでしこには、関数の実行結果が、特殊変数「それ」に代入される規則があり、これが、なでしこ独自の「日本語らしさ」を引き立てています。

以下のプログラムでは、置換結果が、変数「それ」に代入されており、これが画面に表示されます。

「イヌがxxと吠える」の「xx」を「ワンワン」に置換。
それを表示。

※実は、mixiなどのWebサービスを作るのに用いられているPerlという言語にも、「それ」に相当する特殊変数「$_」があります。Perl の「$_」もなでしこの「それ」と同じで引数の省略を行うのに役立っています。

「それ」は省略できる

ところが、変数「それ」の素晴らしさは「日本語らしさ」という部分に留まりません。日本語で「それ」と言う語句は指示代名詞です。会話をしている場合に、物事を省略するのに用いますが、話の流れが明確である場合、「それ」自体を頻繁に省略することができます。

例えば、AさんがBさんと会話している場合です。

Aさん「このジュース飲む?」
Bさん「うん。(それを)飲む!」

Aさんの質問に対し、Bさんが答えますが、話の対象が「ジュース」であることは明確なので、ジュースを「それ」と言い換えたり、「それ」自体を省略することができるのです。

これと同じで、なでしこにも「それ」を省略できる場面があります。以下のプログラムに注目してください。日本語として読むと、それほど難しくなく意味が分かります。

物語=「ある朝、●が朝起きると雪が降っていた」
物語の「●」を「山田」に置換して、カタカナ変換して、表示。

しかし、このプログラムは、以下のようなプログラムにある変数「それ」を省略した形になっています。

物語=「ある朝、●が朝起きると雪が降っていた」
物語の「●」を「山田」に置換する。
それをカタカナ変換する。
それを表示する。

見比べてみて、変数「それ」が省略され、複数の文に連結できるようになっていることに気付くでしょうか。ここには、なでしこの3つの文法ルールが適用されています。

1つ目は、命令の実行結果は、変数「それ」に返されるということです。これは、これまでも見てきたことです。そして、2つ目は、多くの場合、変数「それ」は省略ができるという点があります。最後、3つ目は、複数の文を、「…して、…」のように書いて連続実行できるという点です。

このように、変数「それ」が省略ができるので、プログラムを非常に簡潔に表すことができるのです。

以下は、適当なファイルの内容を読み込み、メールアドレスを置換して、すぐに保存するというプログラムです。デスクトップに、適当なテキストを記述してから実行してください。

対象ファイル=「{デスクトップ}test.txt」
対象ファイルを開いて、
「aaa@example.com」を「bbb@example.com」に置換して、
表示する。

プログラムが少し長くなってしまうので、改行して書いていますが、ファイルの内容を全て読み込んで、メールアドレスを置換して画面に表示するという一連の流れを簡潔に記述することができています。

変数「それ」が省略できるので、プログラムが簡潔になり、また日本語らしい文脈になっていると感じるのではないでしょうか。