From: Kenta Murata Date: 2011-08-01T18:30:03+09:00 Subject: [ruby-dev:44304] [Ruby 1.9 - Feature #5133][Open] Array#unzip as an alias of Array#transpose Issue #5133 has been reported by Kenta Murata. ---------------------------------------- Feature #5133: Array#unzip as an alias of Array#transpose http://redmine.ruby-lang.org/issues/5133 Author: Kenta Murata Status: Open Priority: Normal Assignee: Yukihiro Matsumoto Category: core Target version: 1.9.x Array#zip の逆は Array#transpose なんですけど、 この対応関係が非常に分かり難いなと思いました。 Haskell には zip の逆をやる関数として unzip が用意されています。 unzip という名前は、「zip の逆をやりたい」と思ったときに (transpose よりは) 思い付きやすい名前だと思います。 ということで Array#unzip を Array#transpose のエイリアスとして 導入してはどうでしょう? 以下パッチです: diff --git a/array.c b/array.c index 8caad66..dc411b7 100644 --- a/array.c +++ b/array.c @@ -4720,6 +4720,7 @@ Init_Array(void) rb_define_method(rb_cArray, "reject!", rb_ary_reject_bang, 0); rb_define_method(rb_cArray, "zip", rb_ary_zip, -1); rb_define_method(rb_cArray, "transpose", rb_ary_transpose, 0); + rb_define_alias(rb_cArray, "unzip", "transpose"); rb_define_method(rb_cArray, "replace", rb_ary_replace, 1); rb_define_method(rb_cArray, "clear", rb_ary_clear, 0); rb_define_method(rb_cArray, "fill", rb_ary_fill, -1); -- http://redmine.ruby-lang.org