前田です。 # 来週いよいよ卒論の中間発表なのですが、現実逃避(^^; In message "[ruby-list:10261] Re: for が修飾子だったら" 市川 裕隆 <hirotaka.ichikawa / tosmec.toshiba.co.jp> wrote: | 手元の1.1c2では、 | print 3.to_s { print "g" } | print "f" | の出力が | 3f | で、to_sは与えられたブロックを無視しています。 | parse errorにもなりません。 ブロックが実行されないのはto_sが内部でyieldを呼んでないから であって、ブロックがメソッドに渡されてないからではありません。 print [nil].each { print "g" } とすればgと出力されると思います。 | もしかして「改行は文の区切りになりえない」という仕様に | 変えたら改行をはさんだブロックも評価できるようになるのかな、 | と思いましたがどうでしょう。 たぶん改行をセパレータとしない方が(さらに言えば括弧の省略なども ない方が)文法はシンプルになると思うのですが、シンプルな文法の方 が使いやすいとは必ずしも言えないんじゃないかと思います。 print("foo"); を print "foo" と書けるはRubyの魅力の一つですよね。 -- 前田 修吾 <shugo / aianet.ne.jp>