違いについて

ぼくの中では、Ruby = Python (二アリーイコールです) と思ってたのだけど、使っていると結構違いに気づかされる。

例えば、メソッドの扱い。
Pythonだと、

>>> def square(x):
...  return x * x
...
>>> square
<function square at 0x65370>

とオブジェクトを返してくれるけど、
Rubyだと、

irb(main):030:0> def square(x)
irb(main):031:1> return x * x
irb(main):032:1> end
=> nil
irb(main):033:0> square
ArgumentError: wrong number of arguments (0 for 1)
	from (irb):33:in `square'
	from (irb):33
	from :0

と、すぐに評価が始まる。

両者の評価の仕方の違いなんだろうけど、扱いが違うんだね。
やればやるほど、違いに気づかされるな。