From: Yukihiro Matsumoto Date: 2008-06-19T12:18:41+09:00 Subject: [ruby-dev:35172] Re: return from proc in lambda In message "Re: [ruby-dev:35167] return from proc in lambda" on Thu, 19 Jun 2008 11:39:24 +0900, SASADA Koichi writes: | | ささだです. | | def m | lambda{ | proc{ | return :ng1 | } | }.call.call | :ng2 | end | | begin | m() | rescue LocalJumpError | :ok | end | | この例ですが,LocalJumpError にするべきかな,と思うのですが,どう |でしょうか.1.8, 1.9 ともに :ng2 が返ります.1.9.0-2 では,pending |にしたいと思います. [ruby-dev:35171]に書いた原則に従えば、:ng1が返るはずです。 まだmの実行が完了していない以上、procからのreturnはmを終了さ せるはずです。 が、別にこれが絶対と思っているわけではないので、lambdaをまた いだprocからのreturnは禁止(LocalJumpError)、でも全然構わない と思います。 ただ、ng2を返す(procだけを終わらせる?)のはナイと思います。 1.8の方もこれで決めた結果に合わせて直します。