早瀬@大阪大学基礎工学部情報科学科 です。

すみません、便乗質問です。

> b = の後ろが欠落しているわけではありません。
>     b = hikaku(b)
> と,等価です。

hikaku(b)を評価する時点で、bは宣言されているんですね。

% irb
irb(main):001:0> defined?(x)
nil
irb(main):002:0> x=x
nil
irb(main):003:0> defined?(x)
"local-variable"

という事もできて面白いのですが、これにはなにか理由があるのでしょうか?
代入実行時に宣言されることにしても良いと思うのですが。



…と書いてからマニュアルを見たら、

> 宣言は、例え実行されなくても宣言とみなされます。
> ...

と、ちゃんと書かれていました。でも宣言のタイミングについては書かれていま
せんね。

-- 
早瀬 康裕
大阪大学基礎工学部情報科学科数理科学コース