From: "mame (Yusuke Endoh)" Date: 2013-08-04T21:49:02+09:00 Subject: [ruby-core:56372] [ruby-trunk - Bug #8693] lambda invoked by yield acts as a proc with respect to return Issue #8693 has been updated by mame (Yusuke Endoh). My guess: * yield invokes any block as a plain block * lambda block always checks the arguments Anyway, I don't recommend you to write a code that depends on this behavior because this is considered an implementation-detail. If you want to use the behavior as a spec, or change the behavior, it would be good to make a feature request with actual use case. From my experience, "just making it consistent" is not an effective reason to do it. -- Yusuke Endoh ---------------------------------------- Bug #8693: lambda invoked by yield acts as a proc with respect to return https://bugs.ruby-lang.org/issues/8693#change-40882 Author: rits (First Last) Status: Rejected Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0p247 (2013-06-27) [x64-mingw32] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN irb(main):004:0> def m1; yield end; def m2; m1 &->{return 0}; 1 end; m2 => 0 -- http://bugs.ruby-lang.org/