From: Satoshi Nakagawa Date: 2007-08-28T17:36:46+09:00 Subject: [ruby-list:43950] Array#insert のリファレンス 中川といいます。 リファレンスマニュアルの Array#insert の記述が実際の動作と 異なるようです。 http://www.ruby-lang.org/ja/man/?cmd=view;name=Array#insert http://doc.loveruby.net/refm/api/view/method/Array/i/insert には、 インデックス nth の要素の直前に第 2 引数以降の値を挿入します。 という記述がありますが、 irb> [1,2,3].insert(1,10) => [1, 10, 2, 3] irb> [1,2,3].insert(-1,10) => [1, 2, 3, 10] irb> [1,2,3].insert(-4,10) => [10, 1, 2, 3] 実際には、nth が負の場合には、インデックス nth の要素の直後に 要素が挿入されるようです。 1.8 のソースも確認してみましたが、そんな感じになっています。 pos = NUM2LONG(argv[0]); if (pos == -1) { pos = RARRAY(ary)->len; } if (pos < 0) { pos++; } rb_ary_splice(ary, pos, 0, rb_ary_new4(argc - 1, argv + 1)); -- Satoshi Nakagawa http://d.hatena.ne.jp/Psychs/