# \[Feature:trunk\] enhancement of Array#drop

**URL:** <https://www.ruby-forum.com/t/feature-trunk-enhancement-of-array-drop/168293>\
**Category:** Development\
**Created:** [May 19, 2009, 8:59am UTC](https://www.ruby-forum.com/t/feature-trunk-enhancement-of-array-drop/168293 "2009-05-19T08:59:17Z")\
**Posts on this page:** 7\
**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:** [May 19, 2009, 8:59am UTC](https://www.ruby-forum.com/t/feature-trunk-enhancement-of-array-drop/168293/1 "2009-05-19T08:59:17Z")

</div>

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

Rubye$B$G%9%/%j%W%H$r=q$$$F$$$F!“G[Ns$+$i!”$"$k\>r7o$K9gCW$9$k@he(B  
e$BF,$NMWAG$N$\_$r:o=|$9$k!"$H$$$&=hM}$r=q$-$?$$\>lLL$K=P2q$C$?$3e(B  
e$B$H$,2?EY$+$"$j$^$9!#e(B

e$BL5\>r7o$G@hF,$NMWAG$r:o=|$9$k%a%=%C%I$H$7$F$Oe(Bshifte$B$^$?$Oe(Bdrop(1)  
e$B$,$"$j!"$^$?!"\>r7o$K9gCW$7$?A4$F$NMWAG$r:o=|$9$k%a%=%C%I$H$7e(B  
e$B$F$Oe(Bdeletee$B$,$"$j$^$9$,!"$"$k\>r7o$K9gCW$9$k@hF,$NMWAG$N$\_$r:oe(B  
e$B=|$7$h$&$H$9$k$H!"0U30$HJ#;($J5-=R$K$J$C$F$7$^$$$^$9!#e(B

…  
e$B$H$$$&OC$re(BIRCe$B$G$7$F$\_$?$H$3$m!"$J$+$@$5$s$K!Ve(Bdrope$B$K%V%m%Ce(B  
e$B%/0z?t$rDI2C$9$k$N$O$I$&$+!W$H8@$o$l$^$7$?!#e(B

e$BNce(B:  
[:a, :b, :a, :b].drop(1){|e| e == :b} #=\> [:a, :a, :b]  
[:a, :b, :a, :b].drop(2){|e| e == :b} #=\> [:a, :a]

e$B$5$i$K!"Bhe(B2e$B0z?t$,;XDj$5$l$?\>l9g$O!“e(B{|e| e ===  
e$BBhe(B2e$B0z?te(B} e$B$H$\_$Je(B  
e$B$9$h$&$K$9$l$P$5$i$KJXMx!”$H$b8@$o$l$^$7$?!#e(B

e$BNce(B:  
[:a, :b, :a, :b].drop(1, :b) #=\> [:a, :a, :b]

e$B;d$H$7$F$O$3$N;EMM$,\<B8=$5$l$k$HBgJQJXMx$H;W$&$N$G$9$,!"$$$+e(B  
e$B$,$G$7$g$&$+!#e(B

# e$B$J$\*!"$J$+$@$5$s$,Nc$N$4$H$/4{$K%Q%C%A$r;}$C$F$$$^$9!#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:** [May 19, 2009, 9:20am UTC](https://www.ruby-forum.com/t/feature-trunk-enhancement-of-array-drop/168293/2 "2009-05-19T09:20:59Z")

</div>

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

In message “Re: [ruby-dev:38493] [Feature:trunk] enhancement of  
Array#drop”  
on Tue, 19 May 2009 15:58:46 +0900, “U.Nakamura”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|Rubye$B$G%9%/%j%W%H$r=q$$$F$$$F!“G[Ns$+$i!”$"$k\>r7o$K9gCW$9$k@he(B  
|e$BF,$NMWAG$N$_$r:o=|$9$k!“$H$$$&=hM}$r=q$-$?$$\>lLL$K=P2q$C$?$3e(B  
|e$B$H$,2?EY$+$”$j$^$9!#e(B  
|  
|e$BL5\>r7o$G@hF,$NMWAG$r:o=|$9$k%a%=%C%I$H$7$F$Oe(Bshifte$B$^$?$Oe(Bdrop(1)  
|e$B$,$“$j!”$^$?!“\>r7o$K9gCW$7$?A4$F$NMWAG$r:o=|$9$k%a%=%C%I$H$7e(B  
|e$B$F$Oe(Bdeletee$B$,$”$j$^$9$,!“$”$k\>r7o$K9gCW$9$k@hF,$NMWAG$N$_$r:oe(B  
|e$B=|$7$h$&$H$9$k$H!“0U30$HJ#;($J5-=R$K$J$C$F$7$^$$$^$9!#e(B  
|  
|… e$B$H$$$&OC$re(BIRCe$B$G$7$F$\_$?$H$3$m!”$J$+$@$5$s$K!Ve(Bdrope$B$K%V%m%Ce(B  
|e$B%/0z?t$rDI2C$9$k$N$O$I$&$+!W$H8@$o$l$^$7$?!#e(B

drop\_whilee$B$H$O0c$&$N$G$9$M!#e(B

|e$B;d$H$7$F$O$3$N;EMM$,\<B8=$5$l$k$HBgJQJXMx$H;W$&$N$G$9$,!"$$$+e(B  
|e$B$,$G$7$g$&$+!#e(B

drop\_whilee$B$K@hF,$$$/$D$^$G$H$$$&0z?t$rDI2C$9$k$H$$$&9M$(J}$be(B  
e$B$“$j$^$9$M!#$?$@$7!”$3$N\>l9g$Oe(B

|e$B$5$i$K!"Bhe(B2e$B0z?t$,;XDj$5$l$?\>l9g$O!“e(B{|e| e === e$BBhe(B2e$B0z?te(B} e$B$H$\_$Je(B  
|e$B$9$h$&$K$9$l$P$5$i$KJXMx!”$H$b8@$o$l$^$7$?!#e(B

e$B$,\<+A3$K\<B8=$G$-$^$;$s$,!#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:** [May 19, 2009, 5:07pm UTC](https://www.ruby-forum.com/t/feature-trunk-enhancement-of-array-drop/168293/3 "2009-05-19T17:07:36Z")

</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:38495] Re: [Feature:trunk] enhancement of  
Array#drop”  
on May.19,2009 16:20:07, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
| |Rubye$B$G%9%/%j%W%H$r=q$$$F$$$F!“G[Ns$+$i!”$"$k\>r7o$K9gCW$9$k@he(B  
| |e$BF,$NMWAG$N$_$r:o=|$9$k!“$H$$$&=hM}$r=q$-$?$$\>lLL$K=P2q$C$?$3e(B  
| |e$B$H$,2?EY$+$”$j$^$9!#e(B  
| |  
| |e$BL5\>r7o$G@hF,$NMWAG$r:o=|$9$k%a%=%C%I$H$7$F$Oe(Bshifte$B$^$?$Oe(Bdrop(1)  
| |e$B$,$“$j!”$^$?!“\>r7o$K9gCW$7$?A4$F$NMWAG$r:o=|$9$k%a%=%C%I$H$7e(B  
| |e$B$F$Oe(Bdeletee$B$,$”$j$^$9$,!“$”$k\>r7o$K9gCW$9$k@hF,$NMWAG$N$_$r:oe(B  
| |e$B=|$7$h$&$H$9$k$H!“0U30$HJ#;($J5-=R$K$J$C$F$7$^$$$^$9!#e(B  
| |  
| |… e$B$H$$$&OC$re(BIRCe$B$G$7$F$\_$?$H$3$m!”$J$+$@$5$s$K!Ve(Bdrope$B$K%V%m%Ce(B  
| |e$B%/0z?t$rDI2C$9$k$N$O$I$&$+!W$H8@$o$l$^$7$?!#e(B  
|  
| drop\_whilee$B$H$O0c$&$N$G$9$M!#e(B

e$B;d$,4_0c$$$7$F$J$1$l$P!“e(Bdrop\_whilee$B$O!V$”$k\>r7o$K9gCW$9$kMWAGe(B  
e$B$h$jA0$NMWAG$rA4$F:o=|$9$k!W$G$9$+$i!";d$,M\_$7$$J_$H$O0c$&$he(B  
e$B$&$G$9!#e(B  
e$BLa$jCM$dBP\>]L$H/8+;~$NNc30$NM-L5$J$I$rL5;k$9$l$P!";d$,M\_$7$$e(B  
e$BJ\*$Oe(B ary.delete\_at(ary.index(elem)) e$B$H=q$1$^$9!#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:** [May 19, 2009, 6:20pm UTC](https://www.ruby-forum.com/t/feature-trunk-enhancement-of-array-drop/168293/4 "2009-05-19T18:20:52Z")

</div>

In article [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
Yukihiro M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> > [:a, :b, :a, :b].drop(1){|e| e == :b} #=\> [:a, :a, :b]  
> > [:a, :b, :a, :b].drop(2){|e| e == :b} #=\> [:a, :a]
> 
> e$B$@$=$&$G$9$+$i!"$3$l$O!V0z?t$G;XDj$7$?HO0OFb$G\>r7o$rK~$?$9MWe(B  
> e$BAG$r:o=|$9$k!W%a%=%C%I$K$J$C$F$$$^$9!#$&$5$5$s$N$[$7$$$b$N$Oe(B  
> e$B$3$C$A$J$s$G$9$+!)e(B

e$B$3$l$O!"e(B

drop one element which equals :b  
drop two elements which equals :b

e$B$HFI$`$s$8$c$J$$$G$9$+$M$'!#e(B

e$B$\*$=$i$/!#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:** [May 19, 2009, 6:06pm UTC](https://www.ruby-forum.com/t/feature-trunk-enhancement-of-array-drop/168293/5 "2009-05-19T18:06:04Z")

</div>

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

In message “Re: [ruby-dev:38500] Re: [Feature:trunk] enhancement of  
Array#drop”  
on Wed, 20 May 2009 00:06:19 +0900, “U.Nakamura”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|| drop\_whilee$B$H$O0c$&$N$G$9$M!#e(B  
|  
|e$B;d$,4_0c$$$7$F$J$1$l$P!“e(Bdrop\_whilee$B$O!V$”$k\>r7o$K9gCW$9$kMWAGe(B  
|e$B$h$jA0$NMWAG$rA4$F:o=|$9$k!W$G$9$+$i!";d$,M\_$7$$J_$H$O0c$&$he(B  
|e$B$&$G$9!#e(B

e$B0c$$$^$9!#e(Bdrop\_whilee$B$O!V$"$k\>r7o$K9gCW$9$k4V!"MWAG$r@hF,$+$ie(B  
e$B:o=|$9$k!W$G$9!#e(BRDoce$B$+$iNcBj$r0zMQ$9$k$He(B

```
a = [1, 2, 3, 4, 5, 0]
a.drop_while {|i| i < 3 } # => [3, 4, 5, 0]

```

e$B$G$9!#$3$l$O!"$&$5$5$s$,:G=i$K=q$$$?e(B

> Rubye$B$G%9%/%j%W%H$r=q$$$F$$$F!“G[Ns$+$i!”$“$k\>r7o$K9gCW$9$k@he(B  
> e$BF,$NMWAG$N$\_$r:o=|$9$k!”$H$$$&=hM}$r=q$-$?$$\>lLL$K=P2q$C$?$3e(B  
> e$B$H$,2?EY$+$"$j$^$9!#e(B

e$B$H$$$&I=8=$K$O9gCW$9$k$H;W$$$^$7$?!#$@$+$i$3$=!"$o$6$o$6e(B  
e$B!Ve(Bdrop\_while e$B$H$O0c$&$N$G$9$M!W$HJ9$$$?$o$1$G!#e(B

e$B$?$@!"$J$+$@$5$s$,:n$C$?%Q%C%A$N5sF0$,e(B

> [:a, :b, :a, :b].drop(1){|e| e == :b} #=\> [:a, :a, :b]  
> [:a, :b, :a, :b].drop(2){|e| e == :b} #=\> [:a, :a]

e$B$@$=$&$G$9$+$i!"$3$l$O!V0z?t$G;XDj$7$?HO0OFb$G\>r7o$rK~$?$9MWe(B  
e$BAG$r:o=|$9$k!W%a%=%C%I$K$J$C$F$$$^$9!#$&$5$5$s$N$[$7$$$b$N$Oe(B  
e$B$3$C$A$J$s$G$9$+!)e(B

e$B$=$&$$$&%a%=%C%I$,B8:\_$7$F$O$$$1$J$$$H$O8@$$$^$;$s$,!"$@$H$7e(B  
e$B$F$b!"e(Bdrope$B$N3HD%$H$7$F$OH?BP$7$^$9!#e(B

- e$B$^$:%V%m%C%/$rM?$($J$$\>l9g$HM?$($?\>l9g$G0z?t$N0UL#$,$^$Ce(B  
e$B$?$/0[$J$ke(B(e$BM?$($J$$\>l9g$O:o=|$9$kMWAG?t!"M?$($k\>l9g$O8!e(B  
e$B:w$9$kHO0Oe(B)

- drope$B$@$1$=$N$h$&$J%K!\<%:$,FC$K9b$$$H$O$K$o$+$K?.$8$i$l$Je(B  
e$B$$!#$d$k$J$i!"$`$7$m!"HO0O$r@)8B$9$k%U%#%k%?$H$J$k$h$&$Je(B  
Enumerator e$B$rJV$9%a%=%C%I$rMQ0U$7$F!"e(B

e$B7k6I!"$&$5$5$s$NK\Ev$K$[$7$$$b$N$,$J$s$J$N$+$h$/$o$+$i$J$$$Ge(B  
e$B$$$^$9!#$J$+$@$5$s$,:n$C$?$H$$$&%Q%C%A$O$&$5$5$s$N$[$7$$$b$Ne(B  
e$B$NCfESH\>C\<$J0lHL2=$N$h$&$K$b$\_$($^$9!#e(B

|e$BLa$jCM$dBP\>]L$H/8+;~$NNc30$NM-L5$J$I$rL5;k$9$l$P!";d$,M\_$7$$e(B  
|e$BJ\*$Oe(B ary.delete\_at(ary.index(elem)) e$B$H=q$1$^$9!#e(B

e$B!)!)e(B

e$B$G$b!"$3$l$@$H$R$H$D$7$+\<h$j=|$1$^$;$s$,!#$$$d!"BT$F$h!#!V$“e(B  
e$B$k\>r7o$K9gCW$9$k@hF,$NMWAG$N$\_!W$C$F$N$O!V@hF,$+$i\>r7o$rK~$?e(B  
e$B$9MWAG$r$9$Y$F:o=|$9$k!We(Bdrop\_whilee$B$H$O0c$C$F!”!V@hF,$8$c$J$/e(B  
e$B$F$b$$$$$+$i\>r7o$rK~$?$9:G=i$N$R$H$D$@$1:o=|$9$k!W$C$F$3$H$Ge(B  
e$B$9$+!)e(B

e$B$b$7$+$7$F!"$=$&$$$&$3$H!)e(B e$B5$$E$/$N$,CY$$!)e(B

e$B$=$l$J$i!“$[$7$$$b$N$O$`$7$m!V:G=i$N$R$H$D$7$+:o=|$7$J$$e(B deletee$B!W$J$s$8$c$J$$$G$9$+!)e(B delete_firste$B$H$+e(Bdelete_oncee$B$H$+e(B e$B$J$s$H$+!#$`$7$me(Bdeletee$B$,$R$H$DMWAG$r:o=|$7$F!“e(Bdelete\_alle$B$,A4e(B  
e$B:o=|$G$”$k$Y$-$@$C$?$h$&$J5$$b$7$^$9$,!”$A$g$C$H\<jCY$l$J46$8e(B  
e$B$,$7$^$9$M!#e(B

e$B$$$:$l$K$7$F$bCfED%Q%C%A$NF3F~$O;?@.$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:** [May 21, 2009, 9:15pm UTC](https://www.ruby-forum.com/t/feature-trunk-enhancement-of-array-drop/168293/6 "2009-05-21T21:15:40Z")

</div>

e$B%A%1%C%He(B #1492 e$B$,99?7$5$l$^$7$?!#e(B (by Yukihiro M.)

e$B%9%F!\<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B

## redundant

[http://redmine.ruby-lang.org/issues/show/1492](http://redmine.ruby-lang.org/issues/show/1492)

---

<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:** [May 19, 2009, 6:50pm UTC](https://www.ruby-forum.com/t/feature-trunk-enhancement-of-array-drop/168293/7 "2009-05-19T18:50:21Z")

</div>

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

In message “Re: [ruby-dev:38505] Re: [Feature:trunk] enhancement of  
Array#drop”  
on Wed, 20 May 2009 01:19:11 +0900, Tanaka A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|\>\> [:a, :b, :a, :b].drop(1){|e| e == :b} #=\> [:a, :a, :b]  
|\>\> [:a, :b, :a, :b].drop(2){|e| e == :b} #=\> [:a, :a]  
|\>  
|\> e$B$@$=$&$G$9$+$i!"$3$l$O!V0z?t$G;XDj$7$?HO0OFb$G\>r7o$rK~$?$9MWe(B  
|\> e$BAG$r:o=|$9$k!W%a%=%C%I$K$J$C$F$$$^$9!#$&$5$5$s$N$[$7$$$b$N$Oe(B  
|\> e$B$3$C$A$J$s$G$9$+!)e(B  
|  
|e$B$3$l$O!"e(B  
|  
| drop one element which equals :b  
| drop two elements which equals :b  
|  
|e$B$HFI$`$s$8$c$J$$$G$9$+$M$'!#e(B

e$B$_$_!#$=$s$JFI$\_J}$,!#e(B

e$B$=$C$A$NJ}$,0UL#$O$“$j$=$&$G$9$M!#$”$s$^$j;?@.$8$c$J$$$N$OJQe(B  
e$B$o$i$J$$$s$G$9$,!#e(B
