e$B1sF#$H?=$7$^$9!#e(B
1.9 e$B$G$O!“e(BEnumerable#map e$B$de(B Enumerable#index
e$B$r%V%m%C%/$J$7$G8F$V$He(B
generator e$B$rJV$9$h$&$G$9$,!”$3$l$Oe(B Object#to_enum
e$B$H2?$+0[$J$k$Ne(B
e$B$G$7$g$&$+!#e(B
$ ./ruby -ve ‘g = [:a, :b, :c].map; loop { p g.next }’
ruby 1.9.0 (2007-09-15 patchlevel 0) [i686-linux]
:a
:b
:c
$ ./ruby -ve ‘g = [:a, :b, :c].index; loop { p g.next }’
ruby 1.9.0 (2007-09-15 patchlevel 0) [i686-linux]
:a
:b
:c
e$BFC$K$3$l$i$K0UL#$,$J$$$N$G$"$l$P!";EMM$rJQ$($kI,MW$,$J$$$h$&$J5$$,$9$ke(B
e$B$N$G$9$,!"$I$&$G$7$g$&$+!#e(B
Enumerator e$B$Ge(B yield
e$B$NJV$jCMAjEv$J$I$r;XDj$G$-$k$J$i0UL#$,$"$j$=$&$G$9!#e(B
e$BNc$($Pe(B Enumerator#value= e$B$He(B #result
e$B$rF~$l$F$3$s$JIw$K!#e(B
g = [1, 2, 3].map
loop { x = g.next; g.value = x * 2 }
p g.result #=> [2, 4, 6]
g = [:a, :b, :c].index
loop { x = g.next; g.value = x == :b }
p g.result #=> 1