Rubyのスコープが面白かった件

$ irb
>> $o_o = o_o =-~ ( "o_o" =~ /o_o/ )
=> 1
>> def o_o (o_o) $o_o + o_o end
=> nil
>> o_o
=> 1
>> o_o o_o
=> 2
>> o_o o_o o_o
=> 3
>> o_o o_o o_o o_o
=> 4

個人的には関数と非関数で名前空間が分かれてるのか!と驚いたのだけど、でもまあメソッドとプロパティの名前空間が分かれてるって考えるとそれほど驚きでもないのかも知れない。むしろf f f が f (f f) と解釈されることも驚きなんだけど。

なお最初は $o_o = o_o = 1 と書いていて「この1が顔文字だけれ作れればなぁ」って言っていたら id:hzkr 氏に作ってもらえました。感謝♪