# Enumerable#each\_\* and Enumerable#enum\_\* on 1.9

**URL:** <https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500>\
**Category:** Development\
**Created:** [August 9, 2006, 4:07pm UTC](https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500 "2006-08-09T16:07:46Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [August 9, 2006, 4:07pm UTC](https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500/1 "2006-08-09T16:07:46Z")

</div>

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

e$B$A$g$C$He(B1.9e$B$Ne(BEnumerablee$B$GM7$s$G$$$F5$IU$$$?$N$G$9$,!"e(B1.9e$B$G$Oe(B  
e$B%V%m%C%/$rH\<$o$J$$%$%F%l!\<%?8F$S=P$7%a%=%C%I8F$S=P$7e(B(e$B2?$r8@$Ce(B  
e$B$F$k$N$+$o$+$s$J$$e(B)e$B$Oe(BEnumerable::Enumeratore$B%\*%V%8%’%/%H$rJV$9e(B  
e$B$N$K!“85!9e(Benumerator.soe$B$K$”$C$?%$%F%l!\<%?8F$S=P$7%a%=%C%I$O$=e(B  
e$B$&$J$C$F$$$^$;$s!#e(B

e$B$3$l$O!"$=$l$\>$l$N%$%F%l!\<%?8F$S=P$7%a%=%C%I$KBP1~$7$?e(Benum\_e$B$Je(B  
e$B$s$H$+%a%=%C%I$,MQ0U$5$l$F$$$k$+$i$@$H;W$$$^$9$,!"$3$l$OD\>46e(B  
e$B$KH?$9$k5$$,$9$k$N$G!"e(B

(1) e$B3F%$%F%l!\<%?8F$S=P$7%a%=%C%I$,%V%m%C%/$J$7$G8F$S=P$5$l$?e(B  
e$B\>l9g$Oe(BEnumerable::Enumeratore$B%\*%V%8%’%/%H$rJV$9$h$&$K$7!"e(B  
(2)  
e$B$=$l$i$KBP1~$7$F$$$?e(Benum\_\*e$B%a%=%C%I$OGQ;_$9$ke(B(e$B$^$?$O!"e(B1.9  
e$B$G$OGQ;_$7$J$$$^$G$b7Y9p$9$ke(B)

e$B$H$$$&$N$O$I$&$G$7$g$&$+e(B?

e$B$=$l$G$O!#e(B

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [August 9, 2006, 6:14pm UTC](https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500/2 "2006-08-09T18:14:03Z")

</div>

e$B$J$+$@$G$9!#e(B

At Wed, 9 Aug 2006 23:07:12 +0900,  
U.Nakamura wrote in [ruby-dev:29246]:

> (1) e$B3F%$%F%l!\<%?8F$S=P$7%a%=%C%I$,%V%m%C%/$J$7$G8F$S=P$5$l$?e(B  
> e$B\>l9g$Oe(BEnumerable::Enumeratore$B%\*%V%8%’%/%H$rJV$9$h$&$K$7!"e(B

e$B$3$l$O$$$$$s$G$9$,e(B

> (2) e$B$=$l$i$KBP1~$7$F$$$?e(Benum\_\*e$B%a%=%C%I$OGQ;_$9$ke(B(e$B$^$?$O!"e(B1.9  
> e$B$G$OGQ;_$7$J$$$^$G$b7Y9p$9$ke(B)

e$BJL$K$=$N$^$^;D$7$F$\*$$$F$b$$$$$s$8$c$J$$$G$7$g$&$+!#e(B

e$B$D$$$G$K!"e(BEnumerator#enum\_ife$B$He(BEnumerable#calle$B$H$$$&$N$bDs0F$7$Fe(B  
e$B$\_$^$9!#e(B

# Index: enumerator.c

RCS file: /cvs/ruby/src/ruby/enumerator.c,v  
retrieving revision 1.13  
diff -p -U 2 -r1.13 enumerator.c  
— enumerator.c 9 Jun 2006 21:20:13 -0000 1.13  
+++ enumerator.c 9 Aug 2006 16:09:47 -0000  
@@ -154,4 +154,6 @@ enum\_each\_slice(VALUE obj, VALUE n)  
if (size \<= 0) rb\_raise(rb\_eArgError, “invalid slice size”);

- RETURN\_ENUMERATOR(obj, 1, (n = LONG2NUM(size), &n));

- args[0] = rb\_ary\_new2(size);  
args[1] = (VALUE)size;  
@@ -221,4 +223,7 @@ enum\_each\_cons(VALUE obj, VALUE n)

- 
- RETURN\_ENUMERATOR(obj, 1, (n = LONG2NUM(size), &n));

- args[0] = rb\_ary\_new2(size);  
args[1] = (VALUE)size;  
@@ -352,4 +357,6 @@ enumerator\_with\_index(VALUE obj)  
VALUE \*argv = 0;

- RETURN\_ENUMERATOR(obj, 0, 0);

- if (e-\>args) {  
argc = RARRAY(e-\>args)-\>len;  
@@ -360,4 +367,56 @@ enumerator\_with\_index(VALUE obj)  
}

+static VALUE  
+enumerator\_select(VALUE i, struct enumerator \*e)  
+{

- if (!RTEST(proc\_call(e-\>proc, i))) return Qnil;
- return rb\_yield(i);  
+}
- 

+/\*

- 
  - call-seq:

- 
  - e.enum\_if {…}

- 
  - 

- 
  - Returns an Enumerator which yields when the condition _proc_

- 
  - returns true value.

- 
  - 

- 
  - e.g.:

- 
  - 

```
 (1..10).enum_if {|i| (i%3).zero?}.each {|a| p a}

```

- 
  - 

```
 # outputs below

```

- 
  - 

```
 3

```

- 
  - 

```
 6

```

- 
  - 

```
 9

```

- \*/  
+static VALUE  
+enumerator\_enum\_if(argc, argv, obj)
- int argc;
- VALUE \*argv;
- VALUE obj;  
+{
- struct enumerator \*ptr;
- obj = obj\_to\_enum(argc, argv, obj);
- ptr = DATA\_PTR(obj);
- if (ptr-\>iter == enumerator\_iter\_i) ptr-\>iter = enumerator\_select;
- return obj;  
+}
- 

+/\*

- 
  - call-seq:

- 
  - enum.call(…)

- 
  - 

- 
  - Calls the bound method specified in the first place with addition

- 
  - arguments.

- 
  - 

- \*/  
+static VALUE  
+enumerator\_call(obj, args)
- VALUE obj, args;  
+{
- struct enumerator \*e = enumerator\_ptr(obj);
- 
- args = rb\_ary\_concat(e-\>args, args);
- return rb\_method\_call(RARRAY(args)-\>len, RARRAY(args)-\>ptr,  
e-\>method);  
+}
- 

void  
Init\_Enumerator(void)  
@@ -371,4 +430,5 @@ Init\_Enumerator(void)  
rb\_define\_method(rb\_mEnumerable, “each\_cons”, enum\_each\_cons, 1);  
rb\_define\_method(rb\_mEnumerable, “enum\_cons”, enumerator\_enum\_cons,  
1);

- rb\_define\_method(rb\_mEnumerable, “enum\_if”, enumerator\_enum\_if,  
-1);

- rb\_define\_method(rb\_cEnumerator, “call”, enumerator\_call, -2);  
rb\_define\_method(rb\_cEnumerator, “with\_index”,  
enumerator\_with\_index, 0);

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [October 23, 2006, 12:05am UTC](https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500/3 "2006-10-23T00:05:32Z")

</div>

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

RubyConfe$B$G;~4V$,6u$$$?$N$G8E$$%a!\<%k$rH/7!$7$^$7$?!#e(B

In message “Re: [ruby-dev:29246] Enumerable#each\_\* and Enumerable#enum\_\*  
on 1.9”  
on Wed, 9 Aug 2006 23:07:12 +0900, “U.Nakamura”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B$A$g$C$He(B1.9e$B$Ne(BEnumerablee$B$GM7$s$G$$$F5$IU$$$?$N$G$9$,!"e(B1.9e$B$G$Oe(B  
|e$B%V%m%C%/$rH\<$o$J$$%$%F%l!\<%?8F$S=P$7%a%=%C%I8F$S=P$7e(B(e$B2?$r8@$Ce(B  
|e$B$F$k$N$+$o$+$s$J$$e(B)e$B$Oe(BEnumerable::Enumeratore$B%\*%V%8%'%/%H$rJV$9e(B  
|e$B$N$K!“85!9e(Benumerator.soe$B$K$”$C$?%$%F%l!\<%?8F$S=P$7%a%=%C%I$O$=e(B  
|e$B$&$J$C$F$$$^$;$s!#e(B

e$B$\*$C$7$c$k$h$&$Ke(BEnumeratore$B$N%a%=%C%I$,%V%m%C%/$J$7$G8F$P$l$ke(B  
e$B$He(BEnumerable::Enumeratore$B$rJV$9$o$1$G$9$,!"$3$l$O$I$&$7$F$=$&e(B  
e$B$J$C$F$k$s$G$7$g$&$+$M!#$=$s$J$K$&$l$7$$6ILL$,;W$$$D$-$^$;$s!#e(B  
e$BF3F~$5$l$?$N$Oe(B

Fri Jul 15 00:11:36 2005 Nobuyoshi N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

```
* enum.c (enumeratorize): create new enumerator for current method if
  no block is given.

* enumerator.c: moved from ext/enumerator.

```

e$B$J$s$G$9$,!“M}M3$,;W$$=P$;$^$;$s!#9b662qD9$O!”;d$,8@$$=P$7$?e(B  
e$B$N$G$O$J$$$+$H$N$3$H$G$9$,!#$"$-$l$k5-21NO$G$9$M!#e(B

e$B$^$“!”;d$N5-21NO$,%@%a$J$N$O@N$+$i$J$N$G$A$g$C$HCV$$$F$\*$/$He(B  
e$B$7$F$b!“$3$N$3$H$r5v$9$3$H$G$-$k$h$&$K$J$k$3$H$O!”$?$H$($Pe(B

enum.find.each{|x| x%2==0}

e$B$H$+0lL$G$O2?$r$d$C$F$$$k$N$+$o$+$j$^$;$s!#\>/$J$/$H$b!“e(B  
Eumerablee$B%b%8%e!\<%k$N%a%=%C%I$K$3$N5!G=$rDI2C$7$F$b!”$"$s$^e(B  
e$B$j4r$7$/$J$$$s$G$O$J$$$G$7$g$&$+!#e(B

e$B0lJ}!"$?$H$($Pe(B

String.each\_line.map{|x| x\*2}

e$B$N$h$&$J%1!\<%9$O2?$r$d$C$F$$$k$N$+$O$C$-$jJ,$+$j$^$9!#MW$9$ke(B  
e$B$K!"MWAG$r$R$H$D$:$DM?$($k$h$&$J%V%m%C%/$N;H$$J}$r$9$k%a%=%Ce(B  
e$B%Ie(B(e$B2\>$Ke(Beache$B7O$H8F$S$^$7$g$&e(B)e$B0J30$O!"e(BEnumerable::Enumeratore$B$re(B  
e$BJV$7$F$bA4A34r$7$/$J$$$H$$$&$3$H$G$9!#e(B

|e$B$3$l$O!“$=$l$\>$l$N%$%F%l!\<%?8F$S=P$7%a%=%C%I$KBP1~$7$?e(Benum\_e$B$Je(B  
|e$B$s$H$+%a%=%C%I$,MQ0U$5$l$F$$$k$+$i$@$H;W$$$^$9$,!”$3$l$OD\>46e(B  
|e$B$KH?$9$k5$$,$9$k$N$G!"e(B  
|  
|(1) e$B3F%$%F%l!\<%?8F$S=P$7%a%=%C%I$,%V%m%C%/$J$7$G8F$S=P$5$l$?e(B  
| e$B\>l9g$Oe(BEnumerable::Enumeratore$B%\*%V%8%'%/%H$rJV$9$h$&$K$7!"e(B  
|(2) e$B$=$l$i$KBP1~$7$F$$$?e(Benum\_\*e$B%a%=%C%I$OGQ;_$9$ke(B(e$B$^$?$O!"e(B1.9  
| e$B$G$OGQ;_$7$J$$$^$G$b7Y9p$9$ke(B)  
|  
|e$B$H$$$&$N$O$I$&$G$7$g$&$+e(B?

e$B$H$$$&$o$1$G!"e(Benum\_\*e$B%a%=%C%I$NGQ;\_$K$O;?@.$7$^$9!#$D$$$G$K!"e(B  
eache$B7O$G$J$$%a%=%C%I$+$ie(B

RETURN\_ENUMERATOR(obj, argc, argv);

e$B$r\<h$j30$7$F$7$^$&$3$H$bDs0F$7$^$9!#$H$$$&$+!"6a$$$&$A$K$d$Ce(B  
e$B$A$c$$$^$9$+$iLdBj$,8+$D$+$C$?$i65$($F$/$@$5$$$M!#e(B

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

```

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [October 23, 2006, 4:24am UTC](https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500/4 "2006-10-23T04:24:00Z")

</div>

e$B$J$+$@$G$9!#e(B

At Mon, 23 Oct 2006 07:04:30 +0900,  
Yukihiro M. wrote in [ruby-dev:29685]:

> enum.find.each{|x| x%2==0}
> 
> e$B$H$+0lL$G$O2?$r$d$C$F$$$k$N$+$o$+$j$^$;$s!#\>/$J$/$H$b!“e(B  
> Eumerablee$B%b%8%e!\<%k$N%a%=%C%I$K$3$N5!G=$rDI2C$7$F$b!”$"$s$^e(B  
> e$B$j4r$7$/$J$$$s$G$O$J$$$G$7$g$&$+!#e(B

Enumeratore$B$KC1$J$ke(Beache$B$r\<B9T$5$;$F$b4r$7$/$J$$!"$H$$$&$N$OF146$G$9!#e(B  
e$BFqFI2=$/$i$$$K$7$+Lr$K$ON)$A$=$&$K$J$$$G$9$7!#$7$+$7!"$=$N;H$$J}$OK\Mhe(B  
e$BA[Dj$5$l$k$b$N$+$i$O$+$J$j30$l$F$$$k$s$8$c$J$$$G$7$g$&$+!#e(B

> e$B0lJ}!"$?$H$($Pe(B
> 
> String.each\_line.map{|x| x\*2}
> 
> e$B$N$h$&$J%1!\<%9$O2?$r$d$C$F$$$k$N$+$O$C$-$jJ,$+$j$^$9!#MW$9$ke(B  
> e$B$K!"MWAG$r$R$H$D$:$DM?$($k$h$&$J%V%m%C%/$N;H$$J}$r$9$k%a%=%Ce(B  
> e$B%Ie(B(e$B2\>$Ke(Beache$B7O$H8F$S$^$7$g$&e(B)e$B0J30$O!"e(BEnumerable::Enumeratore$B$re(B  
> e$BJV$7$F$bA4A34r$7$/$J$$$H$$$&$3$H$G$9!#e(B

enum.map.with\_index e$B$H$+e(B eanum.find.with\_index  
e$B$N$h$&$Ke(BEnumeratore$B$N%ae(B  
e$B%=%C%I$HAH$\_9g$o$;$F;H$&$b$s$8$c$J$$$G$7$g$&$+!#e(B

e$B1\*1s$J=q$-J}$b2DG=$@$+$i!“JXMx$Je(B(e$B\>l9g$b$”$ke(B)e$B$b$N$rGQ;\_$9$k$H$$$&$N$O!“e(B  
e$B$”$^$j4r$7$/$J$$$h$&$J5$$,$7$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [October 23, 2006, 12:21am UTC](https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500/5 "2006-10-23T00:21:33Z")

</div>

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

In message “Re: [ruby-dev:29685] Re: Enumerable#each\_\* and  
Enumerable#enum\_\* on 1.9”  
on Mon, 23 Oct 2006 07:04:30 +0900, Yukihiro M.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B$J$s$G$9$,!“M}M3$,;W$$=P$;$^$;$s!#9b662qD9$O!”;d$,8@$$=P$7$?e(B  
|e$B$N$G$O$J$$$+$H$N$3$H$G$9$,!#$"$-$l$k5-21NO$G$9$M!#e(B

e$B$(!\<$H!"FI$\_$h$&$K$h$C$F$O8m2r$5$l$=$&$J$N$GJdB-!#e(B

e$B!V9b662qD9$K$h$k$H;d$,8@$$=P$7$?$N$G$O$J$$$+$H$$$&$3$H$G$9$,!“e(B  
(e$B\<+J,$GH/8@$7$?$3$H$r$^$C$?$/;W$$=P$;$J$$$h$&$G$O!”;d$Ne(B) e$B$"e(B  
e$B$-$l$k$[$I\<e$$5-21NO$G$9$M!W$H$$$&0UL#$G$9!#e(B

e$B4V0c$C$F$b9b662qD9$N5-21NO$,IaDL$8$c$J$$e(B(e$BNI$$J}$K$b0-$$J}$Ke(B  
e$B$be(B)e$B$H$$$&0UL#$O$"$j$^$;$s!#$^!"NI$$J}$@$H$O;W$&$1$I!#e(B

e$B$G!"$5$C$-$NB3$-!#e(B

In message “Re: [ruby-dev:29248] Re: Enumerable#each\_\* and  
Enumerable#enum\_\* on 1.9”  
on Thu, 10 Aug 2006 01:12:02 +0900, removed\_email\_address@domain.invalid writes:

|\> (2) e$B$=$l$i$KBP1~$7$F$$$?e(Benum\__e$B%a%=%C%I$OGQ;$9$ke(B(e$B$^$?$O!"e(B1.9  
|\> e$B$G$OGQ;$7$J$$$^$G$b7Y9p$9$ke(B)  
|  
|e$BJL$K$=$N$^$^;D$7$F$_$$$F$b$$$$$s$8$c$J$$$G$7$g$&$+!#e(B

e$B$5$C$-$b=q$-$^$7$?$,!“$J$/$=$&$H;W$$$^$9!#e(Beache$B7O%a%=%C%I$O%Ve(B  
e$B%m%C%/$”$j$G%$%F%l!\<%H!"%V%m%C%/$J$7$Ge(BEnumeratore$B$H$$$&86B’$G!#e(B

|e$B$D$$$G$K!"e(BEnumerator#enum\_ife$B$He(BEnumerable#calle$B$H$$$&$N$bDs0F$7$Fe(B  
|e$B$\_$^$9!#e(B

e$B@5D\>!"e(BEnumerable#calle$B$O2?$r$9$k$b$N$+$h$/$o$+$i$J$$$N$G$9$,!#e(B

e$B$$$:$l$K$7$F$b!"$=$&$$$&$N$Oe(Bgeneratore$B$GBP1~$9$Y$-$8$c$J$$$Ge(B  
e$B$7$g$&$+$M$(!#$G$-$k$b$N$J$ie(Bgeneratore$B$rAH$_9~$_$K$7$Fe(B(e$B\>l9g$Ke(B  
e$B$h$C$F$Oe(BEnumerator  
e$B$HE}9g$7$Fe(B)e$B!"e(BEnumerable#mape$B$J$I$NLa$jCM$re(B  
lazye$B%j%9%H$K$7$?$$$N$G$9$,!#e(B

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [October 23, 2006, 6:18am UTC](https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500/6 "2006-10-23T06:18:14Z")

</div>

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

In message “Re: [ruby-dev:29687] Re: Enumerable#each\_\* and  
Enumerable#enum\_\* on 1.9”  
on Mon, 23 Oct 2006 11:23:27 +0900, “Nobuyoshi N.”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|\> enum.find.each{|x| x%2==0}  
|\>  
|\> e$B$H$+0lL$G$O2?$r$d$C$F$$$k$N$+$o$+$j$^$;$s!#\>/$J$/$H$b!“e(B  
|\> Eumerablee$B%b%8%e!\<%k$N%a%=%C%I$K$3$N5!G=$rDI2C$7$F$b!”$“$s$^e(B  
|\> e$B$j4r$7$/$J$$$s$G$O$J$$$G$7$g$&$+!#e(B  
|  
|Enumeratore$B$KC1$J$ke(Beache$B$r\<B9T$5$;$F$b4r$7$/$J$$!”$H$$$&$N$OF146$G$9!#e(B  
|e$BFqFI2=$/$i$$$K$7$+Lr$K$ON)$A$=$&$K$J$$$G$9$7!#$7$+$7!"$=$N;H$$J}$OK\Mhe(B  
|e$BA[Dj$5$l$k$b$N$+$i$O$+$J$j30$l$F$$$k$s$8$c$J$$$G$7$g$&$+!#e(B

e$B$($($H!"\>e$N%3!\<%I$,!VK\MhA[Dj$5$l$k$b$N!W$G$J$$$3$H$OF10U$7e(B  
e$B$^$9!#5$$K$7$F$$$k$N$O!VK\MhA[Dj$5$l$k$b$N!W$H$O$J$K$+$H$$$&e(B  
e$B$3$H$G$9!#\>/$J$/$H$b;d$O;W$$$D$+$J$$$s$G$9$h$M!#e(B

|\> String.each\_line.map{|x| x\*2}  
|\>  
|\> e$B$N$h$&$J%1!\<%9$O2?$r$d$C$F$$$k$N$+$O$C$-$jJ,$+$j$^$9!#MW$9$ke(B  
|\> e$B$K!"MWAG$r$R$H$D$:$DM?$($k$h$&$J%V%m%C%/$N;H$$J}$r$9$k%a%=%Ce(B  
|\> e$B%Ie(B(e$B2\>$Ke(Beache$B7O$H8F$S$^$7$g$&e(B)e$B0J30$O!"e(BEnumerable::Enumeratore$B$re(B  
|\> e$BJV$7$F$bA4A34r$7$/$J$$$H$$$&$3$H$G$9!#e(B  
|  
|enum.map.with\_index e$B$H$+e(B eanum.find.with\_index e$B$N$h$&$Ke(BEnumeratore$B$N%ae(B  
|e$B%=%C%I$HAH$\_9g$o$;$F;H$&$b$s$8$c$J$$$G$7$g$&$+!#e(B

enum.map{}.with\_indexe$B$H$+$J$i$H$b$+$/!“e(Benum.map.with\_indexe$B$Ke(B  
e$B$J$s$N0UL#$,$”$k$N$+$H!#0UL#E\*$K$Oe(Benum.to\_a.each\_with\_index  
e$B$HF1$8$o$1$G$9$+$i!#e(B

|e$B1\*1s$J=q$-J}$b2DG=$@$+$i!“JXMx$Je(B(e$B\>l9g$b$”$ke(B)e$B$b$N$rGQ;\_$9$k$H$$$&$N$O!“e(B  
|e$B$”$^$j4r$7$/$J$$$h$&$J5$$,$7$^$9!#e(B

e$B!VJXMx$J\>l9g$,;W$$$D$+$J$$$+$iGQ;_$7$h$&!W$H8@$C$F$k$o$1$G$9e(B  
e$B$+$i!“!VJXMx$J\>l9g$,$”$k!W$J$iGQ;_$7$^$;$s!#e(B

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

```

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [October 23, 2006, 8:12am UTC](https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500/7 "2006-10-23T08:12:50Z")

</div>

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:29688] Re: Enumerable#each\_\* and Enumerable#enum\_\*  
on 1.9”  
on Oct.23,2006 13:17:39, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
| |\> String.each\_line.map{|x| x_2}  
| |\>  
| |\> e$B$N$h$&$J%1!\<%9$O2?$r$d$C$F$$$k$N$+$O$C$-$jJ,$+$j$^$9!#MW$9$ke(B  
| |\> e$B$K!"MWAG$r$R$H$D$:$DM?$($k$h$&$J%V%m%C%/$N;H$$J}$r$9$k%a%=%Ce(B  
| |\> e$B%Ie(B(e$B2\>$Ke(Beache$B7O$H8F$S$^$7$g$&e(B)e$B0J30$O!"e(BEnumerable::Enumeratore$B$re(B  
| |\> e$BJV$7$F$bA4A34r$7$/$J$$$H$$$&$3$H$G$9!#e(B  
| |  
| |enum.map.with\_index e$B$H$+e(B eanum.find.with\_index e$B$N$h$&$Ke(BEnumeratore$B$N%ae(B  
| |e$B%=%C%I$HAH$\_9g$o$;$F;H$&$b$s$8$c$J$$$G$7$g$&$+!#e(B  
|  
| enum.map{}.with\_indexe$B$H$+$J$i$H$b$+$/!“e(Benum.map.with\_indexe$B$Ke(B  
| e$B$J$s$N0UL#$,$”$k$N$+$H!#0UL#E_$K$Oe(Benum.to\_a.each\_with\_index  
| e$B$HF1$8$o$1$G$9$+$i!#e(B

e$B$$$d$$$d!“e(Beache$B$He(Bmape$B$K$OLa$jCM$,0c$&$H$$$&7hDjE\*$J:9$,$”$j$^$9!#e(B  
e$B$h$C$F!"e(B  
p enum.map.with\_index{|e,i|…} #(A)  
e$B$H=q$/$3$H$,$G$-$J$/$J$k$H!"F1$8$3$H$r\<B8=$9$k$?$a$K$O!"e(B  
a = []; enum.to\_a.each\_with\_index{|e,i|a\<\<…}; p a #(B)  
e$B$^$?$Oe(B  
p enum.to\_enum(:map).with\_index{|e,i|…} #(C)  
e$B$H$$$&5-=R$,I,MW$K$J$j$^$9!#e(B

e$B$=$b$=$b!“e(BEnumerable::Enumeratore$B$O!“FbItE\*$Ge(Beache$B$r7h$a$&$A$Ge(B  
e$B;H$&%V%m%C%/IU$-%a%=%C%I$Ge(Beache$B0J30$r;H$C$F$[$7$$\>l9g$,$”$k$+e(B  
e$B$i9M0F$5$l$?$b$N$@$HM}2r$7$F$$$^$9!#e(B  
e$B$D$^$j!“e(B(B)e$B$N$h$&$K=q$/$N$,%”%[$\_$?$$$@$+$ie(B(C)e$B$H=q$1$k$h$&$Ke(B  
e$B$7$?!”$H$$$&$3$H$G$9$M!#e(B  
e$B$=$7$F!"e(B1.9e$B$N8=\>u$N;EMM$O!“e(B(C)e$B$H$$$A$$$A=q$/$h$je(B(A)e$B$H=q$1$?J}e(B  
e$B$,4r$7$$$8$c$s!”$H$$$&$3$H$@$H;W$C$F$$$?$N$G$9$,e(B…

| |e$B1\*1s$J=q$-J}$b2DG=$@$+$i!“JXMx$Je(B(e$B\>l9g$b$”$ke(B)e$B$b$N$rGQ;_$9$k$H$$$&$N$O!“e(B  
| |e$B$”$^$j4r$7$/$J$$$h$&$J5$$,$7$^$9!#e(B  
|  
| e$B!VJXMx$J\>l9g$,;W$$$D$+$J$$$+$iGQ;_$7$h$&!W$H8@$C$F$k$o$1$G$9e(B  
| e$B$+$i!“!VJXMx$J\>l9g$,$”$k!W$J$iGQ;\_$7$^$;$s!#e(B

e$B$3$s$J$3$H$K;H$C$?$j$7$F$^$9!#JXMx$G$9!#e(B  
[http://www.garbagecollect.jp/~usa/d/200608a.html#id20060810\_P1](http://www.garbagecollect.jp/~usa/d/200608a.html#id20060810_P1)

e$B$=$l$G$O!#e(B

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [October 23, 2006, 9:39am UTC](https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500/8 "2006-10-23T09:39:03Z")

</div>

In message “Re: [ruby-dev:29689] Re: Enumerable#each\_\* and  
Enumerable#enum\_\* on 1.9”  
on Mon, 23 Oct 2006 15:10:58 +0900, “U.Nakamura”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:  
|  
|e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B  
|  
|In message “[ruby-dev:29688] Re: Enumerable#each\_\* and Enumerable#enum\_\* on 1.9”  
| on Oct.23,2006 13:17:39, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
|| |\> String.each\_line.map{|x| x_2}  
|| |\>  
|| |\> e$B$N$h$&$J%1!\<%9$O2?$r$d$C$F$$$k$N$+$O$C$-$jJ,$+$j$^$9!#MW$9$ke(B  
|| |\> e$B$K!"MWAG$r$R$H$D$:$DM?$($k$h$&$J%V%m%C%/$N;H$$J}$r$9$k%a%=%Ce(B  
|| |\> e$B%Ie(B(e$B2\>$Ke(Beache$B7O$H8F$S$^$7$g$&e(B)e$B0J30$O!"e(BEnumerable::Enumeratore$B$re(B  
|| |\> e$BJV$7$F$bA4A34r$7$/$J$$$H$$$&$3$H$G$9!#e(B  
|| |  
|| |enum.map.with\_index e$B$H$+e(B eanum.find.with\_index e$B$N$h$&$Ke(BEnumeratore$B$N%ae(B  
|| |e$B%=%C%I$HAH$\_9g$o$;$F;H$&$b$s$8$c$J$$$G$7$g$&$+!#e(B  
||  
|| enum.map{}.with\_indexe$B$H$+$J$i$H$b$+$/!“e(Benum.map.with\_indexe$B$Ke(B  
|| e$B$J$s$N0UL#$,$”$k$N$+$H!#0UL#E_$K$Oe(Benum.to\_a.each\_with\_index  
|| e$B$HF1$8$o$1$G$9$+$i!#e(B  
|  
|e$B$$$d$$$d!“e(Beache$B$He(Bmape$B$K$OLa$jCM$,0c$&$H$$$&7hDjE\*$J:9$,$”$j$^$9!#e(B  
|e$B$h$C$F!"e(B  
| p enum.map.with\_index{|e,i|…} #(A)  
|e$B$H=q$/$3$H$,$G$-$J$/$J$k$H!"F1$8$3$H$r\<B8=$9$k$?$a$K$O!"e(B  
| a = []; enum.to\_a.each\_with\_index{|e,i|a\<\<…}; p a #(B)  
|e$B$^$?$Oe(B  
| p enum.to\_enum(:map).with\_index{|e,i|…} #(C)  
|e$B$H$$$&5-=R$,I,MW$K$J$j$^$9!#e(B  
|  
|  
|e$B$=$b$=$b!"e(BEnumerable::Enumeratore$B$O!“FbItE\*$Ge(Beache$B$r7h$a$&$A$Ge(B  
|e$B;H$&%V%m%C%/IU$-%a%=%C%I$Ge(Beache$B0J30$r;H$C$F$[$7$$\>l9g$,$”$k$+e(B  
|e$B$i9M0F$5$l$?$b$N$@$HM}2r$7$F$$$^$9!#e(B

e$BF10U$7$^$9!#e(B

|e$B$D$^$j!“e(B(B)e$B$N$h$&$K=q$/$N$,%”%[$\_$?$$$@$+$ie(B(C)e$B$H=q$1$k$h$&$Ke(B  
|e$B$7$?!"$H$$$&$3$H$G$9$M!#e(B  
|e$B$=$7$F!"e(B1.9e$B$N8=\>u$N;EMM$O!“e(B(C)e$B$H$$$A$$$A=q$/$h$je(B(A)e$B$H=q$1$?J}e(B  
|e$B$,4r$7$$$8$c$s!”$H$$$&$3$H$@$H;W$C$F$$$?$N$G$9$,e(B…

(B)e$B$N$h$&$K=q$/$N$,%“%[$\_$?$$e(B(A)e$B$NJ}$,NI$$$H$$$&$N$OJ,$+$i$Je(B  
e$B$$$G$b$”$j$^$;$s!#$H$O$$$(!"e(Bwith\_indexe$B$H8@$$$?$$$@$1$N$?$a$Ke(B  
mape$B$,e(BEnumeratore$B$rJV$9$h$&$K$9$k$C$F$N$b$J$s$+JQ$J5$$,$7$^$9!#e(B  
e$B$=$b$=$b%V%m%C%/$r\>JN,$7$?e(Bmape$B$C$F$J$K$h$C$FOC$K$J$j$^$9$7!#e(B

e$BMWAG$=$N$b$N$re(Bmape$B$9$ke(B(e$B$D$^$j%V%m%C%/$N\>JN,$Oe(B{|x|x}e$B$HF1$8e(B)  
e$B$He(B  
e$B2r\<a$9$k$J$i$Pe(B(e$B$=$N2r\<a$O\<+A3$@$H;W$$$^$9$,e(B)e$B!"e(Bmape$B$Oe(B  
Enumeratore$B$rJV$7$F$O$$$1$J$$!"DL\>o$Ne(Bmape$B$HF1$8$b$N$rJV$5$J$/e(B  
e$B$F$O$$$1$^$;$s!#%V%m%C%/IU$-$Ne(Bmape$B$,e(BEnumeratore$B$rJV$5$J$$0J\>e!“e(B  
e$B3FMWAG$rJV$9e(BEnumeratore$B$,M\_$7$/$F$b!”$=$NL\>A0$O\>/$J$/$H$be(Bmap  
e$B$G$O$J$$$H;W$$$^$9!#$A$g$C$H9M$($k$He(Bentriese$B$,;W$$$D$-$^$9$,!"e(B  
e$B:#$Oe(Bto\_ae$B$NJLL\>$G$9$M!#e(B

|| e$B!VJXMx$J\>l9g$,;W$$$D$+$J$$$+$iGQ;_$7$h$&!W$H8@$C$F$k$o$1$G$9e(B  
|| e$B$+$i!“!VJXMx$J\>l9g$,$”$k!W$J$iGQ;_$7$^$;$s!#e(B  
|  
|e$B$3$s$J$3$H$K;H$C$?$j$7$F$^$9!#JXMx$G$9!#e(B  
|[丁稚な日々](http://www.garbagecollect.jp/~usa/d/200608a.html#id20060810_P1)

e$B$?$H$($P$3$&$$$&$3$H$G$9$h$M!#e(B

ARGF.binmode.each\_byte.with\_index{|b, i|  
print ‘%08x:’ % i if i % 16 == 0  
print ’ %02x’ % b  
puts if i % 16 == 15  
}

e$B$3$&$$$&$N$G$I$&$+$H;W$$$^$9!#e(B

ARGF.binmode.bytes.with\_index{|b, i|  
print ‘%08x:’ % i if i % 16 == 0  
print ’ %02x’ % b  
puts if i % 16 == 15  
}

e$B$b$C$HC;$$$7!#$b$C$H$be(Bbytese$B$,$J$K$rJV$9$Y$-$+$K$Oe(Bruby-coree$BJ}e(B  
e$BLL$G$b$d$d0[O@$,$“$k$h$&$G$9$,!#$b$&$A$g$C$HCV$-49$(2DG=$G$Je(B  
e$B$$Nc$O$J$$$+$J$”!#e(B

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

```

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [October 23, 2006, 10:23am UTC](https://www.ruby-forum.com/t/enumerable-each-and-enumerable-enum-on-1-9/64500/9 "2006-10-23T10:23:53Z")

</div>

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

In message “Re: [ruby-dev:29690] Re: Enumerable#each\_\* and  
Enumerable#enum\_\* on 1.9”  
on Mon, 23 Oct 2006 16:38:52 +0900, Yukihiro M.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$BMWAG$=$N$b$N$re(Bmape$B$9$ke(B(e$B$D$^$j%V%m%C%/$N\>JN,$Oe(B{|x|x}e$B$HF1$8e(B) e$B$He(B  
|e$B2r\<a$9$k$J$i$Pe(B(e$B$=$N2r\<a$O\<+A3$@$H;W$$$^$9$,e(B)e$B!"e(Bmape$B$Oe(B  
|Enumeratore$B$rJV$7$F$O$$$1$J$$!"DL\>o$Ne(Bmape$B$HF1$8$b$N$rJV$5$J$/e(B  
|e$B$F$O$$$1$^$;$s!#%V%m%C%/IU$-$Ne(Bmape$B$,e(BEnumeratore$B$rJV$5$J$$0J\>e!“e(B  
|e$B3FMWAG$rJV$9e(BEnumeratore$B$,M\_$7$/$F$b!”$=$NL\>A0$O\>/$J$/$H$be(Bmap  
|e$B$G$O$J$$$H;W$$$^$9!#$A$g$C$H9M$($k$He(Bentriese$B$,;W$$$D$-$^$9$,!"e(B  
|e$B:#$Oe(Bto\_ae$B$NJLL\>$G$9$M!#e(B

e$B$d$C$Q$3$l$O8@$$2a$.$+$J!#%V%m%C%/$J$7$N%$%F%l!\<%?%a%=%C%I$Ke(B  
with\_indexe$B$rIU$1$i$l$k$3$H$,$I$l$@$14r$7$$$+$C$FOC$J$s$G$7$ge(B  
e$B$&$M!#e(Bmape$B$K$O0cOB46$,$“$k$7!“e(B.with\_indexe$B0U30$K;H$$$\_$A$,;W$$e(B  
e$B$D$+$J$$$N$G!”$A$g$C$H5?LdId$,$D$/!”$/$i$$$G$7$g$&$+!#e(B

e$B$=$&9M$($k$H%V%m%C%/$r\>JN,$5$l$?;~$KJV$5$l$k$b$N$O$$$C$=$N$3e(B  
e$B$He(Bwith\_index e$B0J30$N%a%=%C%I$r;}$?$J$$$H$+$NJ}$,$o$+$j$d$9$$e(B  
e$B$+$b$7$l$^$;$s!#e(B
