以前の記事で盛大にドヤリングしたsliceを用いたcdrモドキ。
ところがドッコイ、もっとマトモな方法がありました。
carはtake(1)あるいいはfirst、cdrはdrop(1)で代用できてしまします。
> ary = (1..10).to_a #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] > ary #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] > ary.drop(1) #=> [2, 3, 4, 5, 6, 7, 8, 9, 10] > ary.take(1) #=> [1] > ary.first #=> 1 > ary #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
ぱっと見でやりたい事がわかります。
その上、どちらも非破壊オンリーなので、以前よりcarやcdrと近くなりました。
takeとfirstの違い
> ary.take(1).class #=> Array > ary.first.class #=> Fixnum
carはリストの先端の要素を返してくるメソッドです。
なので、firstを使うのが正しいと思われます。