上のコードで分からないことは、foo barとmethodが2個連続で書かれたます。思い込み含みですが、これは
定義の部分でfoo(y)のyに当たる部分がbarであろう、と思います。実行順を見るとbarが呼ばれて、fooに行きます。
ブレークポイントの行とその下の行ではdo 1 endと{1}の扱いの違いがあるようです。前者のほうが直前の項に
対する結合が弱い。
上のコードからわかることは、barは単独で実行できるが、fooはできない。fooの定義では(x)とかを書く必要がある。
定数(1)とか()ではいけません。( ;∀;)
「Rubyプログラミング入門」では、さらに解説が続きます。do endは手続きの意味を持たせたいとき、{}は関数として
戻り値を求めたいとき、習慣的に使う。ということです。"(-""-)"