From: SHIMADA Koji Date: 2007-08-07T12:39:01+09:00 Subject: [ruby-list:43814] Re: Procの仕様について しまだです。 eklerniさん、返信ありがとうございます。 下記のご説明で疑問に思っていた部分がクリアになりました。 ありがとうございました。 07/08/07 に eklerni さんは書きました: > From:eklerni > > > 1.8.6におけるProc.newとproc,lambdaとの関係性(それぞれの意味づけ)と > > それが1.9ではどのように変わるのか > > > 前のメールでは勘違いしてたことがありました。1.8.6のproc{}はlambda{}なこ > とを忘れてました。 > procの挙動の変化というよりは、メソッド名のaliasの問題ですね。 > > 1.8.6と1.9共通 > Proc.new{...} はprocオブジェクトを返す。return、breakができない。 > lambda{...} は内部的にlambdaフラグの立ったprocオブジェクトを返す。 > return、breakができる。 > > ただし、proc{...} は > 1.8.6 ではlambda{...}の別名 > 1.9 ではProc.new{...}の別名 > > 見た目が近いほうと同じ挙動のほうがよいだろうという配慮からの変更だと思い > ます。 > > 1.8.6 > > | return | break | retry > ---------------------------------------------------- > Proc.new{...} |  x  | x  |  x > ---------------------------------------------------- > proc{...}   |  o  | o  |  x > ---------------------------------------------------- > lambda{...}  |  o  | o  |  x > ---------------------------------------------------- > 1.9 >         | return | break | retry > ---------------------------------------------------- > Proc.new{...} |  x  | x  |  x > ---------------------------------------------------- > proc{...}    |  x  | x  |  x > ---------------------------------------------------- > lambda{...}  |  o  | o  |  x > ---------------------------------------------------- > -- [ Event Info ] <絶賛企画中> Ruby勉強会札幌 第5回 9月5日 Ruby Sapporo Night vol.2 -- 島田浩二(snoozer.05@gmail.com) URL : http://iddy.jp/profile/snoozer05/