2010e$BG/e(B3e$B7ne(B14e$BF|e(B16:36 Yukihiro M.
[email protected]:
e$B3N$+$Ke(Bzipe$B$O$A$g$C$HMI$i$$$@$3$H$,$“$C$F!“e(Bruby-coree$B$G5DO@$7$?e(B
e$B$3$H$,$”$j$^$9!#7k6I!”$=$N;~$O%l%7!<%P!<$ND9$5M%@h$H$$$&7kO@e(B
e$B$r=P$7$?$N$G$9$,!“:#;W$($P$”$^$jNI$/$J$+$C$?$J$"$H!#$?$H$($P!"e(B
with_indexe$B$N$h$&$J$b$N$re(Bzipe$B$r;H$C$F:n$k>l9g!"O"HV$,@hF,$KMhe(B
e$B$l$J$$$H$$$&$N$O$+$J$jBg$-$J@)Ls$N$h$&$J5$$,$7$^$9!#e(B
e$B$($'$H!“$?$H$($Pe(B 0e$B$+$iL58B$KO"HV$r:n$ke(B iota e$B$He(B
e$BM-8B$NG[Nse(B ary e$B$,$”$C$?$H$7$F!"e(B
ary.each.with_index {|e,i| } e$B$Oe(B
ary.zip(iota) {|e,i| } e$B$H<B8=$G$-$k$,!“e(B
iota.zip(ary) {|i,e| }
e$B$OL58B%k!<%W$K$J$C$F$7$^$&!”$H$$$&0UL#$G$9$+!)e(B
% ./ruby -e ’
iota = Enumerator.new {|y| i = 0; loop { y << i; i += 1 } }
ary = %w[a b c]
ary.zip(iota) {|x,y| p [x,y] }
iota.zip(ary) {|x,y| p [x,y] }
’
[“a”, 0]
[“b”, 1]
[“c”, 2]
[0, “a”]
[1, “b”]
[2, “c”]
[3, nil]
[4, nil]
[5, nil]
…
e$B$G$b!“$+$J$jBg$-$J@)Ls!”$H$$$&$N$O$h$/$o$+$j$^$;$s!#e(B
e$B$I$&$;%V%m%C%/0z?t$G<u$1$H$k$J$i!"=gHV$O$I$&$K$G$b$J$k$N$G$Oe(B?
e$BO"HV$r@hF,$KI=<($7$?$1$l$P!"e(B
ary.zip(iota) {|e,i| p [i,e] }
e$B$H$9$l$P2DG=$G$9$h$M!#e(B
e$B5DO@$r$7$?$H$$$&e(B [ruby-core:14738] e$B$+$i$N%9%l%C%I$rFI$`$H!“e(B
e$B%l%7!<%P$ND9$5$rM%@h$9$k$H%f!<%6$,7+$jJV$7$N=N;$rA$Y$k$,!“e(B
e$B:GC;$N$G;_$^$k$HA*$Y$J$$!”$H$$$&E@$,;XE&$5$l$F$$$F!”$=$l$K$O6&46$r3P$($^$9!#e(B
e$BO"HV$O@hF,$KCV$$$?J}$,$o$+$j$d$9$$!"$H$$$&$J$i$o$+$i$J$$$G$b$J$$$G$9$,!“e(B
e$B$=$NMxE@$,!”%f!<%6$,A*$Y$k$H$$$&MxE@$r1[$($k$H$O46$8$^$;$s!#e(B
e$B9M$($?$N$O!"e(Binterlavee$BBP>]$KL58BNs$r4^$`>l9g$G$9!#$?$H$($Pe(B
with_indexe$B$re(Bflattene$B$7$?$h$&$J$b$N$rF@$k;~$K!"Dd;_$7$J$$$N$Oe(B
e$B;H$$$K$/$+$m$&$H!#e(B
iota.interleave(ary) {|x| p x } e$B$,e(B
0, “a”, 1, “b”, 2, “c”, 3, 4, 5, …
e$B$H$J$k$N$O;H$$$K$/$$!"$H!#e(B
e$B$U$`!#$=$l$O$=$s$J5$$,$7$J$$$G$b$J$$$G$9$M!#e(B
zip e$B$H$O0c$C$F!"%V%m%C%/0z?t$G$I$&$K$+$9$k$3$H$O$G$-$^$;$s$+$i$M!#e(B
e$B$G$b!“Dd;_$7$?$H$7$F$b!”$=$l$r$I$&;H$&$+$H$$$&$N$r9M$($k$He(B
e$B7k6I$O;H$$$K$/$$$H$$$&7kO@$K$J$k$+$b$7$l$J$$$H$b;W$$$^$9!#e(B
e$B$I$&$b!"6qBNE*$K$J$j$-$l$J$$$N$,$$$1$^$;$s$M!#e(B
e$B$=$&$G$9$M!#6qBNNc$,$“$l$P!”$=$NNc$K$D$$$FJXMx$+$I$&$+$r9M$($i$l$k$s$G$9$,!"e(B
e$B$3$3$G=P$F$-$F$$$kNc$/$i$$$@$H!"6qBN@-$,B-$j$J$/$F$=$&$$$&$3$H$r9M$($k$N$Oe(B
e$BFq$7$$$G$9!#e(B
Hash[k1,v1,k2,v2,…] e$B$Oe(B
ks = [k1,k2,…]
vs = [v1,v2,…]
e$B$H$9$k$He(B Hash[*ks.interleave(vs)] e$B$H=q$1$F!"e(B
interleave e$B$,M-MQ$JNc$N$h$&$J5$$,$9$k$s$G$9$,!"e(B
e$B$3$l<+BN$OB>$NJ}K!$G2r7h$5$l$F$$$k$7!"e(B
e$BF1$8$h$&$J:$$jJ}$r$7$?B>$NNc$O;W$$=P$;$J$$$s$@$h$J$!!#e(B