[#47955] るびま記事募集:FiberとかSinatra/PadrinoとかBundlerとか — Makoto Kuwata <kwa@...>

桑田といいます。るびま編集部に入りました。

17 messages 2011/04/11

[#48016] 文字列を正規表現にマッチする部分と他の部分に分割 — "5.5" <5.5@...>

5.5 です。

12 messages 2011/04/28

[ruby-list:48007] Re: lambda中のProc中のreturnの挙動について

From: "Y. NOBUOKA" <nobuoka@...>
Date: 2011-04-23 16:08:25 UTC
List: ruby-list #48007
信岡です。

興味深い話題だったので色々調べてみたのですがなかなか難しい問題ですね。。

> 確かに、現状がこの通りであればあの挙動は納得です。
> 「1.8ではprocのreturnはprocを含むメソッドを抜ける」は、「1.9ではlambdaをメソッド呼び出しっぽく〜」の裏返しということでしょうか?
> MLからはそのものずばりの発言は探しあてられませんでした。

そうですね、1 つは 『1.8の時は囲んでいるメソッドから脱出するはずです。』 [1] というまつもとさんの発言と、
お察しのとおり 『1.9 では,lambda を「メソッド呼び出し」っぽく扱う,という原則があったはずです.』 [2] という
ささださんの発言の裏返しから、Ruby 1.8 で proc 直下の return はその proc を含むメソッドを抜ける、というのが仕様
なのかなと考えました。
ただ、まつもとさんの発言は lambda の中に入っている proc について言及されているわけではないので、
ちゃんと確認する必要がありますね。

ruby-dev:35175 [3] において、まさに lambda の中の proc からの return について議論されてますが、残念ながら
proc メソッド (Ruby 1.8 においては proc ではなく lambda が生成される) が使われているため参考にならず。。

[1] http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/35171?35002-35918+split-mode-vertical
[2] http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/35173?35002-35918+split-mode-vertical
[3] http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/35175?35002-35918+split-mode-vertical

>> ruby-dev 向きの話題だと思いますので、ruby-dev に投げられたほうがいいかもしれません。
>
> そうですね。
> devに投げて、ひとまず現在の実装方針が信岡さんの書かれたような状態なのかどうかを確認したいと思います。

ruby-dev:43423 を確認しました。
そちらのほうにも後でちょこっと補足事項を投げておこうかと思います。

-- 
信岡 ゆう (NOBUOKA Yu)

In This Thread

Prev Next