e$B@DLZ$G$9!#e(B
1.9 e$B$Ge(B String#each e$B$,$J$/$J$j$^$7$?$,!"$I$&$K$bITJX$G$9!#e(B
e$B$J$s$GITJX$J$N$+9M$($F$_$?$H$3$m!"e(BArray e$B$N%a%=%C%I$,e(B
String e$B$KHf$Y$F<e$$$N$,860x$G$O$J$$$+$H9M$($k$h$&$K$J$je(B
e$B$^$7$?!#$=$3$G!"0J2<$N$h$&$J%a%=%C%I$r?7$?$KF3F~$9$ke(B
e$B$3$H$rDs0F$7$^$9!#e(B
— Enumerable#split(max = nil) {|item| … }
each e$B$GF@$i$l$kMWAG$r=gHV$K%V%m%C%/$KEO$7!"%V%m%C%/$,e(B
e$B??$rJV$7$?$H$3$m$GJ,3d$7$F!"G[Ns$NG[Ns$rJV$9!#:GBge(B max
e$B8D$^$GJ,3d$9$k!#e(Bmax = nil e$B$N$H$-$OL5@)8B$KJ,3d$9$k!#e(B
(e$BHsGK2uE*e(B)
e$BNce(B
p [1, 2, 3, 4, 5].split {|i| i % 2 == 0 } #=> [[1], [3], [5]]
e$BB>$N8@8l$G$NNc!'e(B Haskelle$B$Ne(Bbreake$B$r7+$jJV$7E,MQ$9$k>le(B
e$B9g$KAjEve(B
— Enumerable#span {|item| … }
e$BG[Ns$NMWAG$N$&$A%V%m%C%/$,??$rJV$9@hF,ItJ,$H;D$j$NItJ,$Ke(B
e$BJ,3d$7$Fe(B 2 e$BMWAG$NG[Ns$GJV$9!#e(B(e$BHsGK2uE*e(B)
e$BNce(B
p [1, 2, 3, 1, 2, 3].span {|item| item < 3 } # => [[1, 2], [3,
1, 2, 3]]
e$BB>$N8@8l$G$NNc!'e(B Haskelle$B$Ne(Bspan
— Array#take {|item| … } e$BJLL>0F!'e(Btake_while, slice{}
e$BG[Ns$NMWAG$N$&$A%V%m%C%/$,??$rJV$9MWAG$r@hF,$+$ie(B
e$B$9$Y$F=8$a$FG[Ns$GJV$9!#e(B(e$BHsGK2uE*e(B)
e$BNce(B
p [1, 2, 3, 2, 1].take {|i| i < 3 } # => [1, 2]
e$BB>$N8@8l$G$NNc!'e(B Haskelle$B$Ne(BtakeWhile
— Array#drop {|item| … } e$BJLL>0F!'e(Blstrip, drop_while,
reject_head
e$BG[Ns$NMWAG$N$&$A%V%m%C%/$,??$rJV$9MWAG$r@hF,$+$ie(B
e$B$9$Y$F=|$$$?;D$j$NG[Ns$rJV$9!#e(B(e$BHsGK2uE*e(B)
e$BNce(B
p [1, 2, 3, 4, 5].drop {|i| i < 3 } # => [3, 4, 5]
e$BB>$N8@8l$G$NNc!'e(B Haskelle$B$Ne(BdropWhile
— Array#reverse_drop {|item| … } e$BJLL>0F!'e(Brstrip,
reject_tail, reject_last
e$BG[Ns$NMWAG$N$&$A%V%m%C%/$,??$rJV$9MWAG$rKvHx$+$ie(B
e$B$9$Y$F=|$$$?;D$j$NG[Ns$rJV$9!#e(B(e$BHsGK2uE*e(B)
e$BNce(B
p [1, 2, 3, 4, 5].reverse_drop {|i| i > 3 } # => [1, 2, 3]
— Array#drop_both {|item| … } e$BJLL>0F!'e(Bstrip
e$BG[Ns$NMWAG$N$&$A%V%m%C%/$,??$rJV$9MWAG$r@hF,$HKvHx$Ne(B
e$BN>J}$+$i$9$Y$F=|$$$?;D$j$NG[Ns$rJV$9!#e(B(e$BHsGK2uE*e(B)
e$BNce(B
p [1, 2, 3, 4, 3, 2, 1].drop_both {|i| i < 3 } # => [3, 4, 3]