

Rubyでリスト処理をするには，配列を使うのが普通なのかと思います．単純にCDRを取りたいとき，どうすればよいのでしょうか．shiftというメソッドがあるのを知りましたが，これには2つ問題があります．  
・副作用がある．フレッシュなものがほしい．  
・返値が削除された値（CAR)でCDRではない．  
解消するにはcloneとshiftを組み合わせ，さらにshift後の配列を取り出すという手間をかけるしかないのでしょうか．そもそも配列操作のどれが副作用ありでどれが新しいオブジェクトを作るのか，分かりやすいルールはあるのでしょうか．


CC BY-SA 3.0
2015-06-08T02:19:07.503
11091
2015-06-08T03:05:41.940
10037
question
ruby
Rubyにおけるリスト処理

[code]

    car = array[0]
    cdr = array[1..-1]
    
[/code]

または

[code]

    car, *cdr = array
    
[/code]

メソッドが破壊的かどうかは統一されたルールは無いと思います。リファレンスマニュアルを見るしかないと思います。


CC BY-SA 3.0
2015-06-08T03:05:41.940
11094
2015-06-08T03:05:41.940
3249
11091
answer