質問: Rubyでリスト処理をするには,配列を使うのが普通なのかと思います.単純にCDRを取りたいとき,どうすればよいのでしょうか.shiftというメソッドがあるのを知りましたが,これには2つ問題があります. ・副作用がある.フレッシュなものがほしい. ・返値が削除された値(CAR)でCDRではない. 解消するにはcloneとshiftを組み合わせ,さらにshift後の配列を取り出すという手間をかけるしかないのでしょうか.そもそも配列操作のどれが副作用ありでどれが新しいオブジェクトを作るのか,分かりやすいルールはあるのでしょうか.
回答: ``` car = array[0] cdr = array[1..-1] ``` または ``` car, *cdr = array ``` メソッドが破壊的かどうかは統一されたルールは無いと思います。リファレンスマニュアルを見るしかないと思います。