豊福です。

  前のメールの最後にちらっとしか書かなかったので改めて。

  take n の結果のサイズは最大 n ですが drop n はそうではないので、

--- enum.c      (revision 15765)
+++ enum.c      (working copy)
@@ -1568,7 +1568,7 @@
     VALUE args[2];

     args[1] = NUM2ULONG(n);
-    args[0] = rb_ary_new2(args[1]);
+    args[0] = rb_ary_new();
     rb_block_call(obj, id_each, 0, 0, drop_i, (VALUE)args);
     return args[0];
 }

ですか。
---
                        豊福