いにしえにPascalからCに移るときの話で、
#define BEGIN {
#define END ;}
をやるなって話。第8章 Pascalが好き Pascal?とか。読み手がこれを知っている人じゃないと笑いはあまり取れないかもしれない。
Pythonはstatement(文)であって、式じゃないからなぁ。起源がmatzが俺lispしたくて作った言語だし。Emacsがendをうまくindentできなかったならばendは無かったかもしれない。
制御構造@オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル
Rubyでは(Cなどとは異なり)制御構造は式であって、何らかの値を返すものが あります(返さないものもあります。値を返さない式を代入式の右辺に置くと parse error になります)。
YARVではこうらしい(このエントリを書いたきっかけ。ああ、そうだったねって思い出した)
YARV Maniacs 【第 5 回】 命令セット (2) リテラル・変数・定数
end は前号でも紹介したとおり、そのスコープの終わり(そして呼び出し元、例えばメソッドコールの返り値としてスタックトップの値を返す)、という意味ですが、これもあわせて次回に。
matzの日記では
なんとなく分かるような気がする。なんでだかPythonって私のあってほしいような言語じゃないんだよな。逆にPythonファンにとってはRubyが「なんか違う」言語なんだろうか。
らしいので。それが式であるか文であるかの差であるかはわからない。LLと分類されるpythonとrubyだが、使い手の脳みそのつくり、癖という観点から見ると、C/Pascalに見られる違いとは比べ物にならないくらい大きいのかもしれない。
0 件のコメント:
コメントを投稿