Block wrapper

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Tanaka A. wrote:

e$B$H$$$&$o$1$GEDCf$5$s$K<ALd!"$3$N%9%/%j%W%H$rK\BN$N%F%9%H$KF~$l$k$N$rm4m0e(B
e$B$&M}M3$O$"$j$^$9$+e(B? e$B$^$D$b$H$5$s$5$5$@$5$sH?BP$Oe(B?

e$B;~4V$,$+$+$k!"$H$$$&M}M3$,$"$j$^$9!#e(B

e$B$J$k$[$I!<!#e(B

e$B<B9T$7$F$_$^$7$?$+e(B?

e$B$$$(!#$H$$$&$o$1$G!"<B9T$7$F$_$^$7$?!#e(B205e$BIC$G$7$?!#e(B
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-cygwin]

e$BMp?t0J30$G4V0z$/J}K!$O$"$j$^$;$s$+$Me(B?

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRl4/FB9L2jg5EEGlAQIzWwgAjLggGeRaIxwzdkZseh2nNcprIBs0onvg
xZjzd2Ae5e7XLM6A68wYEfn6WK1iHN5C4sUjD44YPD/5XJy+1BIVLalGa3HbMjyr
EpVfkNNqwWwJU7FOjAnd1kkVUq7Houjkqy23pYq7Wd5l8uhaitNZnwhsNq/j/JoE
r/C40AJtPghqrhqa9c4b2UiuAyawMtmg1Do/nGfjoyISCtpsCY7JdxPjU5l7Dpzb
gzdIV3+vIOOY9EAnkp8+PcTAQWOHa0Rw8CrxqqYh62NFyChuo6yhYp74yyRSL4fg
tB5PrGb0eH7nbR9VkDFA7T3Y5J81NojbeQnsUgmt1Kzik/CE0hLQfw==
=Ym02
-----END PGP SIGNATURE-----

In article E1HtaMS-00041i-6U@x31,
Yukihiro M. [email protected] writes:

|e$B!!$"$H!"e(BProc#yield e$B$O?7@$9$k$s$G$9$+!)!!J9$/?M$K$h$C$F8@$&$3e(B
|e$B$H$,0c$&$N$G!"$A$g$C$H$h$/$o$+$i$J$$$s$G$9$h$M!#:G=E$J;EMM$re(B
|e$BC/$+65$($F$/$@$5$$!#e(Bsample/test.rb e$B$K$Oe(B Proc#yield e$B$OB8:
$7$^$9!#e(B

e$B?7@_$9$k$D$b$j$G$9!#e(B

e$B$=$N?7@_$9$ke(B Proc#yield e$B$H$$$N$Oe(B Proc#call
e$B$H5!G=E*$J0c$$$Oe(B
e$B$"$j$^$9$+e(B?

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

In message “Re: [ruby-dev:30855] Re: block wrapper”
on Thu, 31 May 2007 12:23:39 +0900, Tanaka A. [email protected]
writes:

|e$B$=$N?7@_$9$ke(B Proc#yield e$B$H$$$N$Oe(B Proc#call e$B$H5!G=E*$J0c$$$Oe(B
|e$B$"$j$^$9$+e(B?

e$B5!G=E*$J0c$$$O$“$j$^$;$s!#$G$O!”$J$<F3F~$9$k$+$H$$$&$H!"e(B

  • yielde$B$NJ}$O!“%V%m%C%/$r8F$S=P$9$H$$$&%K%e%”%s%9$r$h$j6/$/e(B
    e$BI=8=$G$-$ke(B

nil#yield(e$B$$$D$b%(%i!<$K$J$ke(B)e$B$rF1;~$KDj5A$9$k$N$G%V%m%C%/e(B
e$B$,M?$($i$l$J$$$Ne(B(e$B%V%m%C%/0z?t$,e(Bnil)e$B$N;~$N%(%i!<$,e(B

  undefined method `call' for nil:NilClass

e$B$h$j%^%7$K$J$k!#e(B

e$B$H$$$&M}M3$G$9!#e(B

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

Tanaka A. e$B$5$s$O=q$-$^$7$?e(B:

e$B$b$N$G$9!#e(B
e$B!!$"$j$,$H$&$4$6$$$^$9!#F0$+$7$F$_$?$s$G$9$,!"7k2L$N8+J}$,$o$+e(B
e$B$j$^$;$s$G$7$?!#:G=i$Ke(B fail e$B$H=P$?Nc$r0zMQ$7$^$9!#e(B

fail b.yield() {|*v|yield(*v)}/[] &l{|v1,|} #ArgumentError:_wrong_number_of_arguments_(0_for_1) [nil]

e$B!!<!$KNc30$,=P$J$$:G=i$NNc$r0zMQ$7$^$9!#e(B

fail b.yield([]) {|*v|yield(*v)}/[[]] &l{|v1,|} [[]] [nil]

e$B!!$=$l$>$l!"$I$&$$$&0UL#$K$J$k$G$7$g$&$+!#e(B

e$B!!$7$+$7!"%m%0$,e(B 180MBe$B!#2?EY$b$d$k$K$O!"e(Bfail
e$B$7$+=PNO$7$J$$$he(B
e$B$&$K$7$J$$$H$$$+$s$+$J!#$=$l$+!"e(Bfail
e$B$J%F%9%H$@$C$?Nc$r:F<B9Te(B
e$B$9$k%F%9%H!#e(B

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

Yukihiro M. e$B$5$s$O=q$-$^$7$?e(B:

  • yielde$B$NJ}$O!"%V%m%C%/$r8F$S=P$9$H$$$&%K%e%"%s%9$r$h$j6/$/e(B
    e$BI=8=$G$-$ke(B

  • nil#yield(e$B$$$D$b%(%i!<$K$J$ke(B)e$B$rF1;~$KDj5A$9$k$N$G%V%m%C%/e(B
    e$B$,M?$($i$l$J$$$Ne(B(e$B%V%m%C%/0z?t$,e(Bnil)e$B$N;~$N%(%i!<$,e(B

    undefined method `call’ for nil:NilClass

    e$B$h$j%^%7$K$J$k!#e(B

e$B!!e(BProc#call e$B$He(B Proc#yield
e$B$O!“5!G=E*$K$O$^$C$?$/F1$8!”$H$$$&$3e(B
e$B$H$GNI$$$G$7$g$&$+!#e(B

e$B!!e(Bmatzruby/eval.c:

rb_define_method(rb_cProc, "call", rb_proc_call, -2);
rb_define_method(rb_cProc, "yield", rb_proc_call, -2);

e$B$H$"$k$N$G!"$$$$$N$+$J!#e(B

In article E1HtenN-0006CM-2a@x31,
Yukihiro M. [email protected] writes:

|e$B$=$N?7@_$9$ke(B Proc#yield e$B$H$$$N$Oe(B Proc#call e$B$H5!G=E*$J0c$$$Oe(B
|e$B$"$j$^$9$+e(B?

e$B5!G=E*$J0c$$$O$“$j$^$;$s!#$G$O!”$J$<F3F~$9$k$+$H$$$&$H!"e(B

e$B$J$k$[$I!#$H$9$k$H!"3NG’$G$9$,!"e(B
http://www.rubyist.net/~matz/20060529.html
e$B$N!V0c$&%;%^%s%F%#%/%9$,I,MW!W$H$$$&9M$($OJ|4~$7$?$o$1$G$9$Me(B?

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

In message “Re: [ruby-dev:30859] Re: block wrapper”
on Fri, 1 Jun 2007 09:59:23 +0900, SASADA Koichi [email protected]
writes:

|e$B!!e(BProc#call e$B$He(B Proc#yield e$B$O!“5!G=E*$K$O$^$C$?$/F1$8!”$H$$$&$3e(B
|e$B$H$GNI$$$G$7$g$&$+!#e(B

e$B$h$$$G$9!#e(B

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

In message “Re: [ruby-dev:30863] Re: block wrapper”
on Fri, 1 Jun 2007 11:31:33 +0900, Tanaka A. [email protected]
writes:

|e$B$J$k$[$I!#$H$9$k$H!"3NG’$G$9$,!"e(B
|Matzにっき(2006-05-29)
|e$B$N!V0c$&%;%^%s%F%#%/%9$,I,MW!W$H$$$&9M$($OJ|4~$7$?$o$1$G$9$Me(B?

e$B$O$$!#$"$-$i$a$^$7$?!#e(B

In article [email protected],
SASADA Koichi [email protected] writes:

e$B!!$"$j$,$H$&$4$6$$$^$9!#F0$+$7$F$_$?$s$G$9$,!"7k2L$N8+J}$,$o$+e(B
e$B$j$^$;$s$G$7$?!#:G=i$Ke(B fail e$B$H=P$?Nc$r0zMQ$7$^$9!#e(B

e$B:G=i$N%U%#!<%k%I$+$i0J2<$NDL$j$G$9!#e(B

  1. [email protected](B/e$B<:GTe(B
  2. e$B%V%m%C%/8F$S=P$77A<0e(B
  3. e$B%i%C%Q!<e(B / ve$B$NCMe(B
  4. e$B%V%m%C%/$N;XDj7A<0e(B (&l e$B$Oe(B &lambda {…}, &p e$B$Oe(B
    &proc {…})
  5. e$B%i%C%Q!<$rDL$5$J$$$H$-$N7k2Le(B [v1, …]
    e$B$b$7$/$OH/@8$7$?Nc30e(B
  6. e$B%i%C%Q!<$rDL$7$?;~$N7k2Le(B [v1, …] e$B$b$7$/$OH/@8$7$?Nc30e(B

e$B$D$^$je(B

def m(&b)
e$B%V%m%C%/8F$S=P$77A<0e(B
end
m(e$B%V%m%C%/$N;XDj7A<0e(B)

e$B$H$7$?$H$-$H!"e(B

def m(&b)
e$B%V%m%C%/8F$S=P$77A<0e(B
end
def w
m e$B%i%C%Q!<e(B
end
w(e$B%V%m%C%/$N;XDj7A<0e(B)

e$B$H$7$?$H$-$G!":G=i$N8F$S=P$7$KIU$1$?%V%m%C%/$KEO$5$l$kCM$,$Ie(B
e$B$&JQ$o$k$+$r<($7$F$$$^$9!#JQ$o$C$F$$$?$i%i%C%Q!<$K$J$C$F$$$Je(B
e$B$$$o$1$G$9!#e(B

fail b.yield() {|*v|yield(*v)}/[] &l{|v1,|} #ArgumentError:_wrong_number_of_arguments_(0_for_1) [nil]

e$B>e5-$N$Oe(B

def m(&b)
b.yield()
end
m(&lambda {|v1,| p [v1] })

e$B$H$7$?$H$-$H!"e(B

def m(&b)
b.yield()
end
def w
m {|*v| yield *v }
end
w(&lambda {|v1,| p [v1] })

e$B$G!"A0<T$,e(B ArgumentError e$B$K$J$j!"8e<T$,$=$&$O$J$i$:$Ke(B v1
e$B$,e(B nil e$B$K$J$k$3$H$r<($7$F$$$^$9!#e(B

e$B!!<!$KNc30$,=P$J$$:G=i$NNc$r0zMQ$7$^$9!#e(B

fail b.yield([]) {|*v|yield(*v)}/[[]] &l{|v1,|} [[]] [nil]

e$B$3$l$Oe(B

def m(&b)
b.yield([])
end
m(&lambda {|v1,| p [v1] })

e$B$H$7$?$H$-$H!"e(B

def m(&b)
b.yield([])
end
def w
m {|*v| yield *v }
end
w(&lambda {|v1,| p [v1] })

e$B$H$7$?$H$-$G!"e(Bv1 e$B$,A0<T$Ge(B [] e$B$K$J$j!"8e<T$,e(B nil
e$B$K$J$k$3$H$r<($7$F$$$^$9!#e(B

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

Tanaka A. e$B$5$s$O=q$-$^$7$?e(B:

def w
m e$B%i%C%Q!<e(B
end
w(e$B%V%m%C%/$N;XDj7A<0e(B)

e$B$H$7$?$H$-$G!":G=i$N8F$S=P$7$KIU$1$?%V%m%C%/$KEO$5$l$kCM$,$Ie(B
e$B$&JQ$o$k$+$r<($7$F$$$^$9!#JQ$o$C$F$$$?$i%i%C%Q!<$K$J$C$F$$$Je(B
e$B$$$o$1$G$9!#e(B

e$B!!>:Y$J2r@b$"$j$,$H$&$4$6$$$^$7$?!#e(B

e$B!!$H$3$m$G!“e(Blambda e$B$G@8@.$7$?e(B Proc
e$B%*%V%8%’%/%H$rEO$7$F$$$^$9e(B
e$B$,!”$3$l$O$=$&$$$&$b$s$G$7$g$&$+!#e(B

e$B!!e(Blambda e$B$G:n$C$?e(B Proc
e$B%*%V%8%’%/%H$O%V%m%C%/%Q%i%a!<%?$Ne(B
e$B%A%’%C%/$r87L)$K9T$&!J$3$H$K$J$k$i$7$$!#$^$@BP1~$7$F$$$J$$!K$Ne(B
e$B$G!“C1$K%V%m%C%/$rEO$7$?>l9g!J$b$7$/$O!“e(BProc.new
e$B$G:n@.$7$?>le(B
e$B9g!K$H0[$J$k$h$&$J5$$,$7$F$$$^$9!#e(BProc#yield
e$B$N>l9g$O!”$3$N0ce(B
e$B$$$rL5;k$9$k$h$&$K$9$k$s$@$H!”>!<j$K;W$C$F$$$?$N$G$9$,!"$=$&$Ge(B
e$B$b$J$$$i$7$/!#e(B

In article E1Htx6H-00073o-Cw@x31,
Yukihiro M. [email protected] writes:

|Matzにっき(2006-05-29)
|e$B$N!V0c$&%;%^%s%F%#%/%9$,I,MW!W$H$$$&9M$($OJ|4~$7$?$o$1$G$9$Me(B?

e$B$O$$!#$"$-$i$a$^$7$?!#e(B

e$B0c$&%;%^%s%F%#%/%9$,I,MW$H;W$C$?860x$NLdBj$O$J$s$G$7$g$&e(B?

e$B0c$&%;%^%s%F%#%/%9$H$$$&$N$O;DG0$J$,$ie(B wrapper e$B$H$O$+$J$jAje(B
e$BH?$7$^$9$,!“$=$NLdBj$re(B wrapper e$B$HAjH?$7$J$$7A$G2r7h$9$k2r$,e(B
e$BB8:_$9$k2DG=@-$b$”$j$^$9!#e(B

e$B$G$9$,!"LdBj<+BN$,$o$+$i$J$$$3$H$K$O9M$($k$3$H$b$G$-$^$;$s!#e(B
e$B$=$NLdBj$H$O$J$s$J$N$G$7$g$&e(B?

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

In message “Re: [ruby-dev:30876] Re: block wrapper”
on Sun, 3 Jun 2007 00:10:07 +0900, Tanaka A. [email protected]
writes:

|> e$B$O$$!#$"$-$i$a$^$7$?!#e(B
|
|e$B0c$&%;%^%s%F%#%/%9$,I,MW$H;W$C$?860x$NLdBj$O$J$s$G$7$g$&e(B?

[ruby-dev:30879]e$B$K$"$k$h$&$K0z?t%A%'%C%/$N87L)2=$r9T$&$+$I$&e(B
e$B$+$r6hJL$7$?$$$H$$$&$b$N$G$7$?!#e(B

|e$B0c$&%;%^%s%F%#%/%9$H$$$&$N$O;DG0$J$,$ie(B wrapper e$B$H$O$+$J$jAje(B
|e$BH?$7$^$9$,!“$=$NLdBj$re(B wrapper e$B$HAjH?$7$J$$7A$G2r7h$9$k2r$,e(B
|e$BB8:_$9$k2DG=@-$b$”$j$^$9!#e(B

e$B$A$g$C$HL5M}$8$c$J$$$+$H;W$$$^$9!#e(B

In article [email protected],
SASADA Koichi [email protected] writes:

e$B!!$H$3$m$G!“e(Blambda e$B$G@8@.$7$?e(B Proc e$B%*%V%8%'%/%H$rEO$7$F$$$^$9e(B
e$B$,!”$3$l$O$=$&$$$&$b$s$G$7$g$&$+!#e(B

lambda e$B$@$m$&$H$J$s$@$m$&$H!"%V%m%C%/$r;XDj$9$kJ}K!$9$Y$F$Ke(B
e$B$D$$$FBP1~$G$-$J$1$l$P%i%C%Q!<$H$O$$$($^$;$s!#e(B

e$B!!e(Blambda e$B$G:n$C$?e(B Proc e$B%*%V%8%‘%/%H$O%V%m%C%/%Q%i%a!<%?$Ne(B
e$B%A%’%C%/$r87L)$K9T$&!J$3$H$K$J$k$i$7$$!#$^$@BP1~$7$F$$$J$$!K$Ne(B
e$B$G!“C1$K%V%m%C%/$rEO$7$?>l9g!J$b$7$/$O!“e(BProc.new e$B$G:n@.$7$?>le(B
e$B9g!K$H0[$J$k$h$&$J5$$,$7$F$$$^$9!#e(BProc#yield e$B$N>l9g$O!”$3$N0ce(B
e$B$$$rL5;k$9$k$h$&$K$9$k$s$@$H!”>!<j$K;W$C$F$$$?$N$G$9$,!"$=$&$Ge(B
e$B$b$J$$$i$7$/!#e(B

e$B0[$J$k$N$O9=$$$^$;$s$,!"D>@\8F$V$N$H%i%C%Q!<7PM3$G8F$V$N$H$Ge(B
e$BF1$85sF0$K$J$k$h$&$K$7$F$/$@$5$$!#e(B

e$B$=$N$h$&$K$G$-$J$$;EMM$K$OH?BP$7$^$9!#e(B

e$B0lHL$K!"8F$S=P$5$l$kB&$G$N:Y9)e(B (lambda e$B$H$=$&$G$J$$$N$H$GJQe(B
e$B$($k$H$+e(B) e$B$O%i%C%Q!<$G07$&CM$rJQ$($J$/$F:Q$$N$G;EMM$GG:$I,e(B
e$BMW$O$J$$$O$:$G$9!#$b$A$m$s!“e(BYARV e$B$G$N<BAu$,MF0W$+$I$&$+$H$$e(B
e$B$&E@$OJL$K$”$k$G$7$g$&$,!#e(B

e$B$=$l$KBP$7!“8F$S=P$9B&$N:Y9)e(B (call e$B$G8F$V$N$He(B yield
e$B$G8F$V$Ne(B
e$B$rJQ$($k$H$+e(B) e$B$O%i%C%Q!<$G07$&CM$KH?1G$5$;$kI,MW$,=P$F$-$^$9e(B
e$B$+$i;EMM$+$i9M$(D>$9I,MW$,$”$j$^$9!#e(B

e$B$$$:$l$K$7$F$b2?$r<B8=$7$?$/$F$=$&$$$&;EMM$K$J$C$F$$$k$+$rM}e(B
e$B2r$7$F$d$k$N$,$h$$$H;W$$$^$9!#MW5a$5$l$?;EMM$r$=$N$^$^<BAu$9e(B
e$B$k$3$H$,>o$K9,$;$K$D$J$,$k$H$$$&$o$1$G$O$"$j$^$;$s$7!#e(B

In article E1Hv3TT-0004LL-L8@x31,
Yukihiro M. [email protected] writes:

|> e$B$O$$!#$"$-$i$a$^$7$?!#e(B
|
|e$B0c$&%;%^%s%F%#%/%9$,I,MW$H;W$C$?860x$NLdBj$O$J$s$G$7$g$&e(B?

[ruby-dev:30879]e$B$K$"$k$h$&$K0z?t%A%'%C%/$N87L)2=$r9T$&$+$I$&e(B
e$B$+$r6hJL$7$?$$$H$$$&$b$N$G$7$?!#e(B

[ruby-dev:30879] e$B$r$$k$H!“0z?t%A%'%C%/$N87L)2=$O9T$&J}?K$Ge(B
e$B$”$k$HFI$
<h$l$^$9$,!“$”$-$i$a$?$s$G$9$+e(B?

e$B$H$$$&$+!“$5$5$@$5$s$O$”$^$j<+?.$,L5$$46$8$G$9$,!"8=:$NJ}?Ke(B
e$B$O$A$c$s$HEA$o$C$F$k$s$G$7$g$&$+e(B? e$B$H$$$&$+8=:
$NJ}?K$O$I$&e(B
e$B$$$&$b$N$J$s$G$7$g$&e(B?

|e$B0c$&%;%^%s%F%#%/%9$H$$$&$N$O;DG0$J$,$ie(B wrapper e$B$H$O$+$J$jAje(B
|e$BH?$7$^$9$,!“$=$NLdBj$re(B wrapper e$B$HAjH?$7$J$$7A$G2r7h$9$k2r$,e(B
|e$BB8:_$9$k2DG=@-$b$”$j$^$9!#e(B

e$B$A$g$C$HL5M}$8$c$J$$$+$H;W$$$^$9!#e(B

e$B:Y9)$G$-$kE@$O$$$m$$$m$H$"$k$b$N$G$9!#e(B

e$BNc$($Pe(B [ruby-talk:162561] e$B$GDs0F$7H?1~$,$J$+$C$?0F$r%V%m%C%/e(B
e$B0z?t$KE,MQ$9$l$P!"e(B(e$B%i%C%Q!<$Ke(B * e$B$8$c$J$/$Fe(B **
e$B$r;H$&$3$H$K$Je(B
e$B$j$^$9$,e(B) e$B%i%C%Q!<$rCM$NJB$S0J30$N>pJs$r$=$l$[$IIT<+A3$G$J$$e(B
e$B7A$G:$;$i$l$k$N$G8F$S=P$7B&$N:Y9)$H%i%C%Q!<$rN>N)$G$-$^$9!#e(B

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

In message “Re: [ruby-dev:30882] Re: block wrapper”
on Mon, 4 Jun 2007 13:19:39 +0900, Tanaka A. [email protected]
writes:

|> [ruby-dev:30879]e$B$K$“$k$h$&$K0z?t%A%'%C%/$N87L)2=$r9T$&$+$I$&e(B
|> e$B$+$r6hJL$7$?$$$H$$$&$b$N$G$7$?!#e(B
|
|[ruby-dev:30879] e$B$r$$k$H!“0z?t%A%'%C%/$N87L)2=$O9T$&J}?K$Ge(B
|e$B$”$k$HFI$
<h$l$^$9$,!”$"$-$i$a$?$s$G$9$+e(B?

lambdae$B$K$h$C$F@8@.$7$?e(BProce$B$N87L)2=$O9T$$$^$9!#$"$-$i$a$?$N$O!"e(B
lambdae$B$K$h$C$F@8@.$7$?$H$7$F$be(Byielde$B$G8F$S=P$7$?$i87L)$J%A%'%Ce(B
e$B%/$O9T$o$J$$$h$&$K$9$k$3$H$G$9!#e(B

|e$B$H$$$&$+!“$5$5$@$5$s$O$”$^$j<+?.$,L5$$46$8$G$9$,!"8=:$NJ}?Ke(B
|e$B$O$A$c$s$HEA$o$C$F$k$s$G$7$g$&$+e(B? e$B$H$$$&$+8=:
$NJ}?K$O$I$&e(B
|e$B$$$&$b$N$J$s$G$7$g$&e(B?

  • lambdae$B$G$O87L)$J%A%'%C%/e(B
  • yielde$B$Oe(Bcalle$B$NJLL>e(B

e$B$G$9!#:#=5$5$5$@$/$s$HD>@\2q$&$N$G$=$N;~$$$m$$$mAjCL$7$^$9!#e(B

|e$BNc$($Pe(B [ruby-talk:162561] e$B$GDs0F$7H?1~$,$J$+$C$?0F$r%V%m%C%/e(B
|e$B0z?t$KE,MQ$9$l$P!"e(B(e$B%i%C%Q!<$Ke(B * e$B$8$c$J$/$Fe(B ** e$B$r;H$&$3$H$K$Je(B
|e$B$j$^$9$,e(B) e$B%i%C%Q!<$rCM$NJB$S0J30$N>pJs$r$=$l$[$IIT<+A3$G$J$$e(B
|e$B7A$G:$;$i$l$k$N$G8F$S=P$7B&$N:Y9)$H%i%C%Q!<$rN>N)$G$-$^$9!#e(B

e$B$“$l!”;d$3$N%a!<%k8+Mn$H$7$F$^$7$?!#$U!<$`!#e(B

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

In article E1Hv4fY-0005eN-9L@x31,
Yukihiro M. [email protected] writes:

lambdae$B$K$h$C$F@8@.$7$?e(BProce$B$N87L)2=$O9T$$$^$9!#$"$-$i$a$?$N$O!"e(B
lambdae$B$K$h$C$F@8@.$7$?$H$7$F$be(Byielde$B$G8F$S=P$7$?$i87L)$J%A%'%Ce(B
e$B%/$O9T$o$J$$$h$&$K$9$k$3$H$G$9!#e(B

e$B$J$k$[$I!#e(B

lambda e$B$He(B call e$B$G07$&HO0O$GDL>o$N%a%=%C%IE*0z?tEO$7$N%;%^%se(B
e$B%F%#%/%9$,J]$?$l$k$N$O!"$$$^$^$G$^$H$b$G$J$+$C$?$N$,$^$H$b$Ke(B
e$B$J$k$H$$$&$3$H$G!"D9G/$NLdBj$,2~A1$5$l$k$N$G4r$7$$$G$9!#e(B

e$B$=$NBe=~$H$7$F!"e(B[[1,2],[3,4]].each(&lambda {|a,b| p [a,b]})
e$B$,%(%i!<$K$J$k$o$1$G$9$,!"e(BProc.new e$B$de(B proc
e$B$O;D$k$s$G$7$?$Ce(B
e$B$1e(B?

  • lambdae$B$G$O87L)$J%A%'%C%/e(B
  • yielde$B$Oe(Bcalle$B$NJLL>e(B

e$B$G$9!#:#=5$5$5$@$/$s$HD>@\2q$&$N$G$=$N;~$$$m$$$mAjCL$7$^$9!#e(B

e$BF1$8$J$iJLL>$O$$$i$J$$$s$8$c$J$$$N!“$H;d$Ne(B minimalist e$BE*B&LLe(B
e$B$,$5$5$d$-$^$9!#$b$A$m$se(B Ruby e$B$,e(B minimalistic
e$B$J%G%6%$%s$G$Oe(B
e$B$J$/!”$=$l$,6/$$M}M3$K$J$i$J$$$3$H$O$o$+$C$F$$$^$9$,!"5?Ld$Ne(B
e$B$-$C$+$1$K$O$J$j$^$9!#e(B

e$B$=$7$F!“e(B[ruby-dev:30856] e$B$K$”$2$i$l$F$$$kM}M3$N$&$A!“8e<T$Oe(B
call e$B$G$be(B nil.call e$B$r:n$l$P$$$$$N$G!”;D$kM}M3$OA0<T$N%K%e%"e(B
e$B%s%9$@$1$K$J$j$^$9!#e(B

e$B%K%e%“%s%9$H$$$&$,8z2L$,$J$$$H$O$$$$$^$;$s$7!”$=$&$$$&$H$3$me(B
e$B$K$3$@$o$C$?7k2L$,e(B Ruby e$B$G$"$k$H$b$$$($k$N$GH?BP$9$kDx$G$O$Je(B
e$B$$$N$G$9$,!"e(BProc#yield e$B$C$F$=$s$J$K$$$k$s$G$9$+$Me(B?

e$B$^$?!“e(BProc#yield e$B$He(B Proc#call e$B$G$Oe(B call e$B$N$[$&$,e(B
1e$BJ8;zC;$$$Ne(B
e$B$Ge(B call e$BB&$X$NM6F3$,$”$kDxEYF/$-$^$9!#e(BProc#yield
e$B$N%K%e%“%se(B
e$B%9$NNO$,$=$l$HYI93$7$F$$$k$HN>J}$+$i0z$CD%$i$l$F$”$^$j5$J,$,e(B
e$B$h$/$J$i$J$$$+$b$7$l$^$;$s!#e(B

|e$BNc$($Pe(B [ruby-talk:162561] e$B$GDs0F$7H?1~$,$J$+$C$?0F$r%V%m%C%/e(B
|e$B0z?t$KE,MQ$9$l$P!"e(B(e$B%i%C%Q!<$Ke(B * e$B$8$c$J$/$Fe(B ** e$B$r;H$&$3$H$K$Je(B
|e$B$j$^$9$,e(B) e$B%i%C%Q!<$rCM$NJB$S0J30$N>pJs$r$=$l$[$IIT<+A3$G$J$$e(B
|e$B7A$G:$;$i$l$k$N$G8F$S=P$7B&$N:Y9)$H%i%C%Q!<$rN>N)$G$-$^$9!#e(B

e$B$“$l!”;d$3$N%a!<%k8+Mn$H$7$F$^$7$?!#$U!<$`!#e(B

e$B$=$&$$$($P!"%-!<%o!<%I0z?t$N07$$$O:#$I$&$J$C$F$$$k$s$G$9$+e(B?

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

In message “Re: [ruby-dev:30884] Re: block wrapper”
on Mon, 4 Jun 2007 15:16:30 +0900, Tanaka A. [email protected]
writes:

|e$B$=$NBe=~$H$7$F!"e(B[[1,2],[3,4]].each(&lambda {|a,b| p [a,b]})
|e$B$,%(%i!<$K$J$k$o$1$G$9$,!"e(BProc.new e$B$de(B proc e$B$O;D$k$s$G$7$?$Ce(B
|e$B$1e(B?

e$B;D$j$^$9!#e(B

|e$B%K%e%“%s%9$H$$$&$,8z2L$,$J$$$H$O$$$$$^$;$s$7!”$=$&$$$&$H$3$me(B
|e$B$K$3$@$o$C$?7k2L$,e(B Ruby e$B$G$"$k$H$b$$$($k$N$GH?BP$9$kDx$G$O$Je(B
|e$B$$$N$G$9$,!"e(BProc#yield e$B$C$F$=$s$J$K$$$k$s$G$9$+$Me(B?

e$B$3$NJU$ODs6!$7$F$*$$$F%f!<%6$N;H$$J}$KG$$;$h$&$H;W$$$^$9!#e(B
e$B$A$g$C$HJ|G$$G$9$M!#e(B

|e$B$=$&$$$($P!"%-!<%o!<%I0z?t$N07$$$O:#$I$&$J$C$F$$$k$s$G$9$+e(B?

1.9e$B$K$OF~$i$J$$$3$H$K$J$j$^$7$?!#e(B

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

In message “Re: [ruby-dev:30890] Hashe$B?75-K!$N07$$e(B (was Re: block
wrapper)”
on Tue, 5 Jun 2007 00:16:48 +0900, Tadashi S.
[email protected] writes:

|e$B$=$&$$$($P!“8=>u<u$1F~$l$F$$$ke(BHashe$B$Ne(B
| {a: 1, b: “s”}
|e$B$H$$$&5-K!$O$I$&$7$^$9$+e(B?
|
|* e$B5-K!$H$7$F$OJXMx$J$N$G;D$9e(B
|* e$B%-!<%o!<%I0z?t$,F~$C$?;~$K:.Mp$7$=$&$J$N$Ge(Brevert
|* e$B$=$NB>$K9M$($k$H$3$m$,$”$ke(B

e$B;D$7$^$9!#e(B

e$B:XF#$H?=$7$^$9!#e(B

e$B2#$+$i<:Ni$7$^$9!#e(B

On Mon, 4 Jun 2007 16:25:34 +0900
Yukihiro M. [email protected] wrote:

|e$B$=$&$$$($P!"%-!<%o!<%I0z?t$N07$$$O:#$I$&$J$C$F$$$k$s$G$9$+e(B?

1.9e$B$K$OF~$i$J$$$3$H$K$J$j$^$7$?!#e(B

e$B$=$&$$$($P!"8=>u<u$1F~$l$F$$$ke(BHashe$B$Ne(B
{a: 1, b: “s”}
e$B$H$$$&5-K!$O$I$&$7$^$9$+e(B?

  • e$B5-K!$H$7$F$OJXMx$J$N$G;D$9e(B
  • e$B%-!<%o!<%I0z?t$,F~$C$?;~$K:.Mp$7$=$&$J$N$Ge(Brevert
  • e$B$=$NB>$K9M$($k$H$3$m$,$"$ke(B

In article E1Hv6we-0006S3-ST@x31,
Yukihiro M. [email protected] writes:

|e$B%K%e%“%s%9$H$$$&$,8z2L$,$J$$$H$O$$$$$^$;$s$7!”$=$&$$$&$H$3$me(B
|e$B$K$3$@$o$C$?7k2L$,e(B Ruby e$B$G$"$k$H$b$$$($k$N$GH?BP$9$kDx$G$O$Je(B
|e$B$$$N$G$9$,!"e(BProc#yield e$B$C$F$=$s$J$K$$$k$s$G$9$+$Me(B?

e$B$3$NJU$ODs6!$7$F$*$$$F%f!<%6$N;H$$J}$KG$$;$h$&$H;W$$$^$9!#e(B
e$B$A$g$C$HJ|G$$G$9$M!#e(B

e$B%f!<%6$KBP$9$kN)>l$H$7$F$O$=$l$G$$$$$G$7$g$&$,!“$=$3$K$”$k%Ge(B
e$B%6%$%s$N9M$($r8@MU$K$7$F$$$?$@$1$k$H!"e(BRuby
e$B$C$]$$%$%s%?!<%U%'!<e(B
e$B%9$r%G%6%$%s$9$k$H$-$N;29M$K$J$k$N$G$9$,!"8@MU$K$O$G$-$^$;$se(B
e$B$+$Me(B?

|e$B$=$&$$$($P!"%-!<%o!<%I0z?t$N07$$$O:#$I$&$J$C$F$$$k$s$G$9$+e(B?

1.9e$B$K$OF~$i$J$$$3$H$K$J$j$^$7$?!#e(B

e$B$=$&$9$k$H8=;~E@$G$Oe(B ** e$B$K$h$k%i%C%Q!<$H$$$&0F$ODL$j$K$/$=$&e(B
e$B$G$9$M!#e(B

e$B$G$b!"$J$s$GF~$l$J$$$s$G$9$+e(B?

e$B$=$l$O$=$l$H$7$F!“B>$N0F$H$7$F$O!”%i%C%Q!<MQ$N5-K!$rF3F~$9$ke(B
e$B$H$$$&$b$N$b$"$j$^$9!#$?$H$($P!"e(B*& e$B$H$$$&5-9f$r;H$C$F<!$N$he(B
e$B$&$K$9$k$H$+!#e(B

def w(&v)
m(
&v)
end

e$B$H$+e(B

def w2
m2 {|*&v| yield *&v }
end

e$B$H$+!#e(B

v e$B$K$O8F$S=P$7$N>pJs$rI=8=$9$kE,Ev$J%%V%8%'%/%H$,EO$5$l$k$be(B
e$B$N$H$7$^$9!#$D$^$j!"CM$NJB$S$H%V%m%C%/$N>pJs$G$9!#$=$7$F!“8Fe(B
e$B=P85$,e(B call e$B$+$I$&$+$N%U%i%0$b$$$l$i$l$^$9!#$b$A$m$s!”>-MhE
e(B
e$B$K%-!<%o!<%I0z?t$,F~$l$P!“$=$l$bF~$j$^$9!#$^$?!”$=$l$i$N>pJse(B
e$B$r;2>H!&JQ99$G$-$k$b$N$H$7$^$9!#e(B

[ruby-talk:162561] e$B$Ne(B ** e$B$KBP$9$ke(B &
e$B$NMxE@$O!"%-!<%o!<%I0ze(B
e$B?t$HFHN)$7$F;EMM$rDj5A$G$-$k$3$H$NB>$K!"e(B
& e$B$OB>$N0z?t$H:.$<e(B
e$B$J$$$H$$$&;EMM$K$G$-$k$3$H$G$9!#e(B[ruby-talk:162561] e$B$G$Ne(B **
e$B$N;EMM$O!"IaDL$N0z?t$H:.$6$C$?;~$N5sF0$,<+L@$G$J$$$N$G!#e(B