# Return from proc in lambda

**URL:** <https://www.ruby-forum.com/t/return-from-proc-in-lambda/140842>\
**Category:** Development\
**Created:** [June 19, 2008, 4:43am UTC](https://www.ruby-forum.com/t/return-from-proc-in-lambda/140842 "2008-06-19T04:43:02Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [June 19, 2008, 4:43am UTC](https://www.ruby-forum.com/t/return-from-proc-in-lambda/140842/1 "2008-06-19T04:43:02Z")

</div>

e$B!!$5$5$@$G$9!%e(B

def m  
lambda{  
proc{  
return :ng1  
}  
}.call.call  
:ng2  
end

begin  
m()  
rescue LocalJumpError  
:ok  
end

e$B!!$3$NNc$G$9$,!$e(BLocalJumpError  
e$B$K$9$k$Y$-$+$J!$$H;W$&$N$G$9$,!$$I$&e(B  
e$B$G$7$g$&$+!%e(B1.8, 1.9 e$B$H$b$Ke(B :ng2 e$B$,JV$j$^$9!%e(B1.9.0-2  
e$B$G$O!$e(Bpending  
e$B$K$7$?$$$H;W$$$^$9!%e(B

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [June 19, 2008, 5:20am UTC](https://www.ruby-forum.com/t/return-from-proc-in-lambda/140842/2 "2008-06-19T05:20:27Z")

</div>

In message “Re: [ruby-dev:35167] return from proc in lambda”  
on Thu, 19 Jun 2008 11:39:24 +0900, SASADA Koichi [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:  
|  
|e$B!!$5$5$@$G$9!%e(B  
|  
| def m  
| lambda{  
| proc{  
| return :ng1  
| }  
| }.call.call  
| :ng2  
| end  
|  
| begin  
| m()  
| rescue LocalJumpError  
| :ok  
| end  
|  
|e$B!!$3$NNc$G$9$,!$e(BLocalJumpError e$B$K$9$k$Y$-$+$J!$$H;W$&$N$G$9$,!$$I$&e(B  
|e$B$G$7$g$&$+!%e(B1.8, 1.9 e$B$H$b$Ke(B :ng2 e$B$,JV$j$^$9!%e(B1.9.0-2 e$B$G$O!$e(Bpending  
|e$B$K$7$?$$$H;W$$$^$9!%e(B

[ruby-dev:35171]e$B$K=q$$$?86B’$K=\>$($P!"e(B:ng1e$B$,JV$k$O$:$G$9!#e(B  
e$B$^$@e(Bme$B$N\<B9T$,40N;$7$F$$$J$$0J\>e!"e(Bproce$B$+$i$Ne(Breturne$B$Oe(Bme$B$r=\*N;$5e(B  
e$B$;$k$O$:$G$9!#e(B

e$B$,!"JL$K$3$l$,@dBP$H;W$C$F$$$k$o$1$G$O$J$$$N$G!“e(Blambdae$B$r$^$?e(B  
e$B$$$@e(Bproce$B$+$i$Ne(Breturne$B$O6X;\_e(B(LocalJumpError)e$B!”$G$bA4A39=$o$J$$e(B  
e$B$H;W$$$^$9!#e(B

e$B$?$@!"e(Bng2e$B$rJV$9e(B(proce$B$@$1$r=\*$o$i$;$k!)e(B)e$B$N$O%J%$$H;W$$$^$9!#e(B  
1.8e$B$NJ}$b$3$l$G7h$a$?7k2L$K9g$o$;$FD\>$7$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [June 19, 2008, 5:35am UTC](https://www.ruby-forum.com/t/return-from-proc-in-lambda/140842/3 "2008-06-19T05:35:05Z")

</div>

e$B!!$5$5$@$G$9!%e(B

Yukihiro M. wrote:

> [ruby-dev:35171]e$B$K=q$$$?86B’$K=\>$($P!"e(B:ng1e$B$,JV$k$O$:$G$9!#e(B  
> e$B$^$@e(Bme$B$N\<B9T$,40N;$7$F$$$J$$0J\>e!"e(Bproce$B$+$i$Ne(Breturne$B$Oe(Bme$B$r=\*N;$5e(B  
> e$B$;$k$O$:$G$9!#e(B
> 
> e$B$,!"JL$K$3$l$,@dBP$H;W$C$F$$$k$o$1$G$O$J$$$N$G!“e(Blambdae$B$r$^$?e(B  
> e$B$$$@e(Bproce$B$+$i$Ne(Breturne$B$O6X;\_e(B(LocalJumpError)e$B!”$G$bA4A39=$o$J$$e(B  
> e$B$H;W$$$^$9!#e(B

e$B!!$^$:D{@5$G$9$,!$e(B1.9 e$B$G$Oe(B :ng1 e$B$rJV$7$F$^$7$?!%e(B

e$B!!e(B1.9 e$B$G$O!$e(Blambda  
e$B$r!V%a%=%C%I8F$S=P$7!W$C$]$/07$&!$$H$$$&86B’$,e(B  
e$B$"$C$?$O$:$G$9!%$J$N$G!$e(Blambda{return}.call e$B$O!$e(Blabmda  
e$B$rH4$1$k$h$&e(B  
e$B$K$J$C$F$$$^$9!%e(B

e$B!!$5$F!$$3$3$Ge(B lambda e$B$+$i8+$Fe(B orphan e$B$Je(B proc  
e$B$r$I$&07$&$Y$-$+!$$H$$e(B  
e$B$&LdBj$,=P$F$-$?$N$G!$!Ve(BLocalJumpError  
e$B$K$9$k$Y$-$+!)!W!$$H$$$&5?Lde(B  
e$B$,=P$F$-$?$o$1$G$9!%e(B

e$B!!e(B1.9 e$B$G$O!$e(Bdefine\_method e$B$7$?%V%m%C%/$O!$e(Blambda  
e$B$N8F$S=P$7$H$[$\F1e(B  
e$B$8$G$9!%$J$N$G!$e(Bdefine\_method e$B$GDj5A$7$?%a%=%C%I$+$i8+$Fe(B  
orphan e$B$Je(B  
proc e$B$+$i$Ne(B return  
e$B!$$H8+$k$H!Ve(BLocalJumpErrore$B!W$H8+$k$3$H$,=PMh$k$+e(B  
e$B$J!$$H;W$C$F$\*$j$^$9!%e(B

e$B!!\<BAuE\*$JET9g$G$$$&$H!$!Ve(Blambda e$B$+$i8+$Fe(B orphan  
e$B$r%A%’%C%/$9$k$NBge(B  
e$BJQ$=$&$@$J$!!W$H;W$C$F!$BP1~=PMh$F$$$^$;$s!%$?$@!$e(Bm()  
e$B$+$iH4$1$k$Ue(B  
e$B$D!\<$Ne(B return  
e$B$K$J$C$F$$$^$9!%$A$g$C$H!$%l%"%1!\<%92a$.$k$+$J$"!$$H$be(B  
e$B;W$&$N$G!$BP1~$7$J$/$F$b!$FC$K:$$i$J$$$+$H$O;W$$$^$9!%e(B

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [June 19, 2008, 9:27am UTC](https://www.ruby-forum.com/t/return-from-proc-in-lambda/140842/4 "2008-06-19T09:27:19Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:35173] Re: return from proc in lambda”  
on Thu, 19 Jun 2008 12:33:01 +0900, SASADA Koichi [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|e$B!!e(B1.9 e$B$G$O!$e(Blambda e$B$r!V%a%=%C%I8F$S=P$7!W$C$]$/07$&!$$H$$$&86B’$,e(B  
|e$B$"$C$?$O$:$G$9!%$J$N$G!$e(Blambda{return}.call e$B$O!$e(Blabmda e$B$rH4$1$k$h$&e(B  
|e$B$K$J$C$F$$$^$9!%e(B

e$B$=$&$G$9$h$M!#5$$K$J$k$N$Oe(B

def m  
p lambda{proc{return :r1}.call; :r2}.call  
:r3  
end  
p m

e$B$,!"$J$K$r=PNO$9$k$+$G$9$,!"e(B1.9e$B$G$Oe(B

:r1  
:r3

1.8e$B$G$Oe(B

:r2  
:r3

e$B$rJV$7$^$9$M!#$3$l$O!Ve(B1.9e$B$NJ}$,@5$7$$!W$H$$$&$3$H$K$7$^$7$ge(B  
e$B$&!#e(B1.8e$B$rD\>$9$+$I$&$+$O$^$@$o$+$j$^$;$s$,!#e(B

|e$B!!$5$F!$$3$3$Ge(B lambda e$B$+$i8+$Fe(B orphan e$B$Je(B proc e$B$r$I$&07$&$Y$-$+!$$H$$e(B  
|e$B$&LdBj$,=P$F$-$?$N$G!$!Ve(BLocalJumpError e$B$K$9$k$Y$-$+!)!W!$$H$$$&5?Lde(B  
|e$B$,=P$F$-$?$o$1$G$9!%e(B

e$B$=$&$G$9$M!#@hDx$N%a!\<%ke(B[ruby-dev:35172]e$B$G$O!“e(B:ng1e$B$rJV$9$H=qe(B  
e$B$-$^$7$?$,!”$3$l$,e(Blambdae$B$NCf$G$"$j!"e(Breturne$B$NBP\>]$OK\Mhe(Bme$B$G$Je(B  
e$B$/!“e(Blambdae$B$G$”$k$3$H$r9M$($k$H!"e(B:ng1e$B$h$j$be(BLocalJumpErrore$B$G$"e(B  
e$B$k$Y$-$@$H;W$&$h$&$K$J$j$^$7$?!#$4$a$s!#e(B

e$B$G!"$D$$$5$C$-$^$Ge(BLocalJumpErrore$B$rJV$7$F$$$?$h$&$J$N$K!“e(B:ng1  
e$B$rJV$9$h$&$K$J$j$^$7$?$M!#$H$$$&$3$H$O!”$5$5$@$5$s$KL5BL$J:ne(B  
e$B6H$r6/MW$5$;$F$7$^$$$^$7$?$G$7$g$&$+!#e(B

```
                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)

```
