# Array#flatten $B$N;EMMJQ99!)(B

**URL:** <https://www.ruby-forum.com/t/array-flatten-b-n-emmjq99-b/182612>\
**Category:** Development\
**Created:** [January 31, 2010, 1:49am UTC](https://www.ruby-forum.com/t/array-flatten-b-n-emmjq99-b/182612 "2010-01-31T01:49:39Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [January 31, 2010, 1:49am UTC](https://www.ruby-forum.com/t/array-flatten-b-n-emmjq99-b/182612/1 "2010-01-31T01:49:39Z")

</div>

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

1.9 e$B$Ne(B Array#flatten e$B$K$_$$$F!$G[NsFb$N%_%V%8%’%/%H$Ne(B  
to\_ary e$B%a%=%C%I8F$S=P$7$KBP$9$k5sF0$,860x$G%(%i!\<$H$J$k\>r7o$,e(B  
NameError e$B$+$ie(B NoMethodError e$B$KJQ99$K$J$C$?$h$&$G$9$,!$e(B  
e$B$3$l$O;EMMJQ99$G$7$g$&$+!)e(B

e$B$3$l$,860x$Ge(B Ruby/Tk e$B$,F0$+$J$/$J$C$F$$$k$N$G$9$,!$e(B  
e$BLdBj$N2U=j$re(B NameError e$B$+$ie(B NoMethodError e$B$KJQ99$9$k$He(B  
e$B;EMMJQ99$K$J$k$N$G$I$&$7$h$&$+$HLB$C$F$$$^$9!%e(B  
e$BJQ99$7$F$b==CfH,6e$O!J6eJ,6eNR$O!)!KLdBj$J$$$H$O;W$&$N$G$9$,!$e(B  
e$BG0$N$?$a8x\<0$N;EMMJQ99$+$I$&$+$r3NG’$5$;$F$/$@$5$$!%e(B

# Ruby/Tk e$B$G$O!$e(Bwidget e$B%\*%V%8%’%/%H$NB0@-@\_Dje(B (cget

e$BEye(B) e$B$K$\*$$$F!$e(B

# e$BCN$i$J$$B0@-L\>$KBP$7$F$Oe(B NameError e$B$GJV$7$F$$$^$9!%e(B

# e$B$=$l$K9g$o$;$F!$e(Bmethod\_missing e$B$GBP1~$9$kB0@-L\>%a%=%C%I$be(B

# e$BCN$i$J$$$b$Ne(B (e$B:#2s$N\>l9g$Oe(B to\_ary) e$B$KBP$7$Fe(B

# NameError e$B$rJV$9$h$&$K$7$F$$$^$7$?!%e(B

# e$B!V$J$\<e(B NameError e$B$+!)!W$K$D$$$F$O!$e(B

# e$B$I$&$$$&7P0^$@$C$?$+5-21$K$"$j$^$;$s!%e(B

e$B8D?ME\*$K$Oe(B to\_ary e$B$G%(%i!\<$J$iC1$K$=$N$^$^$Ne(B object  
e$B$H$9$k$@$1$G$be(B  
e$B$$$$$h$&$J5$$b$9$k$N$G$9$,!$$=$l$O$5$9$,$KL5Cc$G$9$+$M!%e(B(^\_^)

---

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [February 1, 2010, 9:03am UTC](https://www.ruby-forum.com/t/array-flatten-b-n-emmjq99-b/182612/2 "2010-02-01T09:03:33Z")

</div>

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

In message “Re: [ruby-dev:40268] Array#flatten e$B$N;EMMJQ99!)e(B”  
on Sun, 31 Jan 2010 09:48:36 +0900, Hidetoshi NAGAI  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|1.9 e$B$Ne(B Array#flatten e$B$K$_$$$F!$G[NsFb$N%_%V%8%'%/%H$Ne(B  
|to\_ary e$B%a%=%C%I8F$S=P$7$KBP$9$k5sF0$,860x$G%(%i!\<$H$J$k\>r7o$,e(B  
|NameError e$B$+$ie(B NoMethodError e$B$KJQ99$K$J$C$?$h$&$G$9$,!$e(B  
|e$B$3$l$O;EMMJQ99$G$7$g$&$+!)e(B

e$B$9$\_$^$;$s!“@5D\>$J$H$3$m!Ve(Bflattene$B$K$_$$$F!"G[NsFb$N%_%V%8%'%/e(B  
e$B%H$Ne(B to\_ary e$B%a%=%C%I8F$S=P$7$KBP$9$k5sF0$,860x$G%(%i!\<$H$J$ke(B  
e$B\>r7o!W$H$$$&$N$,!”$J$K$r0UL#$9$k$N$+$h$/$o$+$i$J$$$N$G$9$,!#e(B  
1.8e$B0JA0$Oe(Bto\_arye$B$r;}$C$F$$$k$+$I$&$+$re(Brespond\_to?e$B$GH=Dj$7$F$$e(B  
e$B$?$N$r!"e(B1.9e$B$G$OD\>@\8F$S=P$9$h$&$K$7$?$3$H$H4X78$7$F$$$k$H;W$$e(B  
e$B$^$9$,!#e(B

|e$B$3$l$,860x$Ge(B Ruby/Tk e$B$,F0$+$J$/$J$C$F$$$k$N$G$9$,!$e(B  
|e$BLdBj$N2U=j$re(B NameError e$B$+$ie(B NoMethodError e$B$KJQ99$9$k$He(B  
|e$B;EMMJQ99$K$J$k$N$G$I$&$7$h$&$+$HLB$C$F$$$^$9!%e(B

NameErrore$B$He(BNoMethodErrore$B$O7Q\>54X78$K$“$k$N$G!”$“$^$jLdBj$O5/e(B  
e$B$-$J$$$H;W$C$F$$$?$N$G$9$,!#6qBNE\*$K$I$&F0$+$J$/$J$C$F$$$k$+!“e(B  
e$B$I$N$h$&$KJQ99$7$h$&$H;W$C$F$$$k$+!”$J$I!“J9$+$;$F$$$?$@$1$ke(B  
e$B$H%”%I%P%$%9$7$h$&$,$”$k$H;W$$$^$9!#e(B

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

```

---

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [February 2, 2010, 12:24am UTC](https://www.ruby-forum.com/t/array-flatten-b-n-emmjq99-b/182612/3 "2010-02-02T00:24:30Z")

</div>

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: Yukihiro M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: [ruby-dev:40285] Re: Array#flatten e$B$N;EMMJQ99!)e(B  
Date: Mon, 1 Feb 2010 17:03:05 +0900  
Message-ID: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> |1.9 e$B$Ne(B Array#flatten e$B$K$_$$$F!$G[NsFb$N%_%V%8%‘%/%H$Ne(B  
> |to\_ary e$B%a%=%C%I8F$S=P$7$KBP$9$k5sF0$,860x$G%(%i!\<$H$J$k\>r7o$,e(B  
> |NameError e$B$+$ie(B NoMethodError e$B$KJQ99$K$J$C$?$h$&$G$9$,!$e(B  
> |e$B$3$l$O;EMMJQ99$G$7$g$&$+!)e(B  
> e$B$9$\_$^$;$s!"@5D\>$J$H$3$m!Ve(Bflattene$B$K$_$$$F!"G[NsFb$N%_%V%8%’%/e(B  
> e$B%H$Ne(B to\_ary e$B%a%=%C%I8F$S=P$7$KBP$9$k5sF0$,860x$G%(%i!\<$H$J$ke(B  
> e$B\>r7o!W$H$$$&$N$,!"$J$K$r0UL#$9$k$N$+$h$/$o$+$i$J$$$N$G$9$,!#e(B

e$B@bL@$,0-$/$F$9$\_$^$;$s!%e(B

> 1.8e$B0JA0$Oe(Bto\_arye$B$r;}$C$F$$$k$+$I$&$+$re(Brespond\_to?e$B$GH=Dj$7$F$$e(B  
> e$B$?$N$r!"e(B1.9e$B$G$OD\>@\8F$S=P$9$h$&$K$7$?$3$H$H4X78$7$F$$$k$H;W$$e(B  
> e$B$^$9$,!#e(B

## e$B\<!$NNc$re(B 1.8 e$B$He(B 1.9 e$B$H$G\<B9T$9$k$H!$7k2L$,0[$J$j$^$9!%e(B to\_str e$B$G$bF1MM$N$3$H$,@8$8$k$N$G!$$D$$$G$K4^$a$F$$$^$9!%e(B

obj1 = Object.new  
p [1,obj1].flatten #=\> no error

obj2 = Object.new  
def obj2.method\_missing(id,\*args)  
raise NoMethodError, “2 unknown ‘#{id}’”  
end  
begin  
p [2,obj2].flatten #=\> error!  
rescue =\> e  
p e  
end

obj3 = Object.new  
def obj3.method\_missing(id,\*args)  
raise NameError, “3 unknown ‘#{id}’”  
end  
begin  
p [3,obj3].flatten #=\> [1.8] [3,obj3] ; [1.9] error!  
rescue =\> e  
p e  
end

## [obj1, obj2, obj3].each{|obj| begin case obj when /^xxx/ p [“xxx”, obj] else p [“else”, obj] end rescue =\> e p e end }

## –\<\< 1.8 \>\>------------------------- [1, #Object:0xb7dddf6c] [2, #Object:0xb7dddeb8] [3, #Object:0xb7ddddf0] [“else”, #Object:0xb7dddf6c] [“else”, #Object:0xb7dddeb8] [“else”, #Object:0xb7ddddf0]

## –\<\< 1.9 \>\>------------------------- [1, #Object:0x8201dd8] [2, #Object:0x8201d10] #\<NameError: 3 unknown ‘to\_ary’\> [“else”, #Object:0x8201dd8] [“else”, #Object:0x8201d10] #\<NameError: 3 unknown ‘to\_str’\>

> |e$B$3$l$,860x$Ge(B Ruby/Tk e$B$,F0$+$J$/$J$C$F$$$k$N$G$9$,!$e(B  
> |e$BLdBj$N2U=j$re(B NameError e$B$+$ie(B NoMethodError e$B$KJQ99$9$k$He(B  
> |e$B;EMMJQ99$K$J$k$N$G$I$&$7$h$&$+$HLB$C$F$$$^$9!%e(B
> 
> NameErrore$B$He(BNoMethodErrore$B$O7Q\>54X78$K$“$k$N$G!”$“$^$jLdBj$O5/e(B  
> e$B$-$J$$$H;W$C$F$$$?$N$G$9$,!#6qBNE\*$K$I$&F0$+$J$/$J$C$F$$$k$+!“e(B  
> e$B$I$N$h$&$KJQ99$7$h$&$H;W$C$F$$$k$+!”$J$I!“J9$+$;$F$$$?$@$1$ke(B  
> e$B$H%”%I%P%$%9$7$h$&$,$”$k$H;W$$$^$9!#e(B

e$BF0$+$J$/$J$C$F$$$?$N$O!$e(Bflatten e$B$,8F$P$l$kG[Ns$NCf$Ke(B  
widget object e$B$,4^$^$l$F$$$k\>l9g$G!$e(BNameError  
e$B$G;\_$^$C$F$^$7$?!%e(B

# widget object e$B$G$O!$CN$i$J$$%a%=%C%I$KBP$7$F$Oe(B

# 

e$B=jM-$7$J$$B0@-$N;2\>He(B/e$BA`:n%a%=%C%I$r8F$$&$H$7$F$$$k$H2r\<a$7$F!$e(B

# e$BL\>A0$N6A$-$Ge(B NameError

e$B$rJV$9$h$&$K$7$F$$$?$N$@$H;W$$$^$9!%e(B

e$BJQ99$K$D$$$F$O!$e(Bwidget object e$B$Ne(B method\_missing  
e$B$K$_$$$Fe(B  
to\_ary e$B$He(B to\_str e$B$N\>l9g$Oe(B NoMethodError  
e$B$H$J$k$h$&$KJQ99$7$^$7$?!%e(B  
e$B;EMMJQ99$K$O$J$k$N$G$9$,!$$3$NDxEY$G$"$l$P!$e(B  
e$B$_$C$7$c$kDL$jLdBj$K$O$J$i$J$$$@$m$&$H;W$$$^$9$N$G!$e(B  
ext/tk/lib/tk.rb e$B$Ne(B commit e$B$r:Q$^$;$F$7$^$$$^$7$?!%e(B

e$B$\*A{$,$;$7$F$9$\_$^$;$s$G$7$?!%e(B

---

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [February 2, 2010, 9:24am UTC](https://www.ruby-forum.com/t/array-flatten-b-n-emmjq99-b/182612/4 "2010-02-02T09:24:07Z")

</div>

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

In message “Re: [ruby-dev:40292] Re: Array#flatten e$B$N;EMMJQ99!)e(B”  
on Tue, 2 Feb 2010 08:23:40 +0900, Hidetoshi NAGAI  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$BF0$+$J$/$J$C$F$$$?$N$O!$e(Bflatten e$B$,8F$P$l$kG[Ns$NCf$Ke(B  
|widget object e$B$,4^$^$l$F$$$k\>l9g$G!$e(BNameError e$B$G;\_$^$C$F$^$7$?!%e(B

e$B$J$k$[$I!#e(BNoMethodErrore$B$7$+JaB\*$7$F$$$^$;$s$+$i$M!#e(B

|# widget object e$B$G$O!$CN$i$J$$%a%=%C%I$KBP$7$F$Oe(B  
|# e$B=jM-$7$J$$B0@-$N;2\>He(B/e$BA`:n%a%=%C%I$r8F$$&$H$7$F$$$k$H2r\<a$7$F!$e(B  
|# e$BL\>A0$N6A$-$Ge(B NameError e$B$rJV$9$h$&$K$7$F$$$?$N$@$H;W$$$^$9!%e(B  
|  
|e$BJQ99$K$D$$$F$O!$e(Bwidget object e$B$Ne(B method\_missing e$B$K$_$$$Fe(B  
|to\_ary e$B$He(B to\_str e$B$N\>l9g$Oe(B NoMethodError e$B$H$J$k$h$&$KJQ99$7$^$7$?!%e(B  
|e$B;EMMJQ99$K$O$J$k$N$G$9$,!$$3$NDxEY$G$"$l$P!$e(B  
|e$B$_$C$7$c$kDL$jLdBj$K$O$J$i$J$$$@$m$&$H;W$$$^$9$N$G!$e(B  
|ext/tk/lib/tk.rb e$B$Ne(B commit e$B$r:Q$^$;$F$7$^$$$^$7$?!%e(B  
|  
|e$B$\*A{$,$;$7$F$9$\_$^$;$s$G$7$?!%e(B

e$B$$$(!“$=$l$O9=$$$^$;$s$,!“e(Bto\_stre$B$He(Bto\_arye$B$K8B$i$:!”!VCN$i$J$$e(B  
e$B%a%=%C%I!W$KBP$7$F$O!”\>o$Ke(BNoMethodErrore$B$rJV$9$Y$-$J$s$8$c$J$$e(B  
e$B$G$7$g$&$+!#DL\>o$N%_%V%8%'%/%H$N?6$kIq$$$K$"$o$;$F$_$$$?J}$,e(B  
e$BLdBj$,\>/$J$$$H;W$$$^$9!#e(B
