From: Tanaka Akira Date: 2001-06-09T22:34:40+09:00 Subject: [ruby-dev:13528] Re: yield *[[]] In article <992022213.746115.25347.nullmailer@ev.netlab.zetabits.com>, matz@zetabits.com (Yukihiro Matsumoto) writes: > |asgn.rb $B$rFI$s$G$_$^$7$?$,(B... $B$J$s$H$$$&$+(B nil.to_a $B$,(B [] $B$G$"$k$3$H$r(B > |$B9*$_$KMxMQ$7$?;EMM$G$9$M$'!#$$$^$N$H$3$m7j$O8+Ev$?$j$^$;$s!#(B > > $B:#$^$G$A$c$s$H9M$($F$J$+$C$?$s$G!"NI$$5!2q$G$7$?!#(B $B$5$i$K8!F$$7$F$_$?$H$3$m!"$$$/$D$+5?Ld$,M/$$$F$-$^$7$?!#(B (1) ... = arg, *[] $B$N5sF0(B % ruby -e 'a, b = [1, 2], *[]; p [a,b]' [[1, 2], nil] *[] $B$,E83+$5$l$F>C$($k$H$9$l$P!"(B[1, 2] $B$HI=<($5$l$k$H$$$&$N$,0U?^$9$k(B $B5sF0$J5$$,$7$^$9!#(B (2) ... = ..., *non-array $B$N5sF0(B % ruby -e 'a, b = 1, *2' -e:1: failed to convert Fixnum into Array (TypeError) * $B$,1&JU@hF,$K$"$k>l9g$K$ONc30$,5/$-$J$$$N$G0l4S@-$K7g$1$k$H46$8$^$9!#(B $B$=$b$=$b!VG[Ns$X$NJQ49!W$H$$$&$N$O$I$N$h$&$K$7$F9T$J$o$l$k$N$G$7$g$&$+(B? (3) $B<+8JBeF~$N1&JU$GJ#?t$N<0$,07$($F$b$$$$5$$,$9$k!%(B % ruby -e 'a = [1]; a += 2, 3; p a' -e:1: parse error $B$b$O$dB?=EBeF~$N1&JU$O$J$s$i$+$N(B($B$R$H$D$N(B)$BCM$r@8@.$9$k$?$a$N7A<0$J$N$G!"(B $B<+8JBeF~$N1&JU$K;H$($J$$M}M3$O$J$$$H;W$$$^$9!#(B (4) Proc $B$H$N4XO"@-(B self[arg ...] call(arg ... ) $B$$(B)$BBeF~$5$l$^$9!%(B $B$H$$$&%^%K%e%"%k$N5-=R$O$b$O$dL@$i$+$K@5$7$/$"$j$^$;$s!#(B ($B0JA0@5$7$+$C$?$N$+$I$&$+$b2x$7$$$H$3$m$G$9$,!#(B) % ruby -e 'lambda {|a,| p a}.call([1,2,3])' [1, 2, 3] % ruby -e 'a, = [1,2,3]; p a' 1 % ruby -e 'a, = 1,2,3; p a' 1 % ruby -e 'lambda {|a,| p a}.call(1,2,3)' -e:1: wrong # of arguments (3 for 1) (ArgumentError) from -e:1:in `call' from -e:1 $B$5$F!"8=:_$N5sF0$r$A$c$s$HM}2r$G$-$?$+$I$&$+$r3NG'$9$k$?$a$K!";d$,M}2r(B $B$7$F$$$k$H$3$m$N5sF0$r(B($B%^%K%e%"%kIw$K(B)$B=q$-2<$7$F$_$^$7$?!#$3$NM}2r$O@5(B $B$7$$$G$7$g$&$+(B? ($B:8JU$N5-=R$,4E$$$N$O>5CN$7$F$$$^$9$,!#(B) $BBeF~(B $BJ8K!(B: $B:8JU<0(B '=' $B1&JU<0(B $B:8JU<0$NJ8K!(B: $BJQ?t(B $BDj?t(B $B<0(B`['expr..`]' $B<0(B`.'$B<1JL;R(B $B1&JU<0$NJ8K!(B: $B<0(B $BB?=EBeF~(B $B:8JU<0$NJ8K!(B: $B:8JU<0(B `,' [$B:8JU<0(B [`,' $B:8JU<0(B ...] [`,']] [$B:8JU<0(B `,' ...] `*' [$B:8JU<0(B] $B1&JU<0$NJ8K!(B: $B<0(B `,' $B<0(B [`,' $B<0(B ...] [$B<0(B `,' ...] `*' $B<0(B $BBeF~$N:8JU!&1&JU$K$OJ#?t$N<0$r5-=R$9$k$3$H$,$G$-!"(B $B$I$A$i$+$K$G$bJ#?t$N<0$,$"$k>l9g$NBeF~$rB?=EBeF~$H$$$$$^$9!#(B $B:8JU$KJ#?t$N<0$,5-=R$5$l$?>l9g!"(B $B1&JU$NCM$,G[Ns$KJQ49$5$l!"3FMWAG$,$=$l$>$l$N<0$KBeF~$5$l$^$9(B $B:8JU$N<0$N?t$h$j$bG[Ns$NMWAG$N?t$NJ}$,B?$$>l9g$K$O!"(B $BM>$C$?MWAG$OL5;k$5$l$^$9!#(B $BG[Ns$NMWAG$,B-$j$J$$>l9g$K$OBP1~$9$kMWAG$NL5$$<0$K$O(B nil $B$,BeF~$5$l$^$9!#(B $B:8JU$N:G8e$N<0$ND>A0$K(B * $B$,$D$$$F$$$k$H!"(B $BBP1~$9$k:8JU$N$J$$M>$C$?MWAG$,G[Ns$H$7$FBeF~$5$l$^$9!#(B $BM>$C$?MWAG$,L5$$;~$K$O6u$NG[Ns$,BeF~$5$l$^$9(B $B1&JU$N:G8e$K!V(B`*' $B<0!W$,$"$k>l9g!"$=$N<0$NI>2A7k2L$O(B $BG[Ns$KJQ49$5$l!"1&JU$KE83+$5$l$^$9!#(B $BE83+8e!"1&JU$K<0$,$J$/$J$C$?>l9g!"(Bnil $B$,1&JU$NCM$K$J$j$^$9!#(B $B1&JU$N<0$,$R$H$D$K$J$C$?>l9g$O$=$N<0$NCM$,1&JU$NCM$K$J$j$^$9!#(B $B1&JU$KJ#?t$N<0$,$"$k>l9g$O$=$l$i$NG[Ns$,1&JU$NCM$K$J$j$^$9!#(B $B$D$^$j!"1&JU<0$,!V<0(B1 `,' ... `,' $B<0(Bn$B!W$H$$$&7A$G$"$C$?>l9g!"(B [$B<0(B1$B$NCM(B, ..., $B<0(Bn$B$NCM(B] $B$H$$$&G[Ns$,1&JU$NCM$K$J$j$^$9!#(B $B$^$?!"1&JU<0$,!V<0(B1 `,' ... $B<0(Bn `,' `*'$B<0(B0$B!W$H$$$&7A$G$"$C$?>l9g!"(B $B4pK\E*$K$O(B [$B<0(B1$B$NCM(B, ... $B<0(Bn$B$NCM(B, *$B<0(B0$B$NCM(B]$B$H$$$&G[Ns$,1&JU$NCM$K$J$j$^$9!#(B $B$?$@$7!"1&JU<0$,!V(B`*' $B<0!W$H$$$&7A$GG[Ns$KJQ49$7$?<0$NCM$,(B [] $B$N>l9g!"(B nil $B$,1&JU$NCM$K$J$j$^$9!#(B $B$^$?!"1&JU<0$,!V(B`*' $B<0!W$H$$$&7A$G(B $BG[Ns$KJQ49$7$?<0$NCM$,MWAG$r0l$D$7$+;}$?$J$$G[Ns$G$"$C$?>l9g!"(B $B$=$NMWAG$,1&JU$NCM$H$J$j$^$9!#(B $B$5$i$K!"1&JU<0$,!V<0(B1 `,' `*' $B<0(B2$B!W$H$$$&7A$G(B $BG[Ns$KJQ49$7$?<0(B2 $B$NCM$,(B [] $B$N>l9g!"(B $B<0(B1 $B$NCM<+BN$,1&JU$NCM$H$J$j$^$9!#(B $BB?=EBeF~$b<0$G$"$j!"$=$NCM$O1&JU$NCM$G$9!#(B $B$?$@$7!"<0<+BN$K(B `,' $B$,4^$^$l$k$?$a!"(B $B0z?t$J$I!"<0$N8e$K(B `,' $B$,8=$l$k2DG=@-$N$"$kJ8L.$K;HMQ$9$k;~$O(B $B$+$C$3$G3g$kI,MW$,$"$j$^$9!#(B > $B0U30$G$9$,!"(BPython$B$G$b5v$5$l$F$$$k$N$G$9!#(BPython$B$N>l9g(B > formal argument$B$K$b$G$-$k$H;W$&!#(B $B$"$!!"$=$&$$$d(B Python $B$G$b$G$-$^$9$M!#K:$l$F$^$7$?!#@N$OCN$C$F$$$?$O$:(B $B$J$s$G$9$,!"$<$s$<$s;W$$=P$7$^$;$s$G$7$?!#$+$o$j$K(B ML $B$r;W$$=P$7$^$7$?(B $B$,!#(B -- [$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira] $B!V$U$($m(B! $B$o$+$a$A$c$s:n@o$G$9$(C"=$B!W(B(Little Worker, $B7KM7@84](B)