[ruby-dev:52084] [Ruby master Feature#5133] Array#unzip as an alias of Array#transpose

Issue #5133 has been updated by matz (Yukihiro Matsumoto). Status changed from Assigned to Rejected `unzip` is not really intuitive with Ruby's OO design. Unlike Haskell, Ruby does not have static type issues. Matz. ---------------------------------------- Feature #5133: Array#unzip as an alias of Array#transpose https://bugs.ruby-lang.org/issues/5133#change-107939 * Author: mrkn (Kenta Murata) * Status: Rejected * Assignee: mrkn (Kenta Murata) ---------------------------------------- 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); -- https://bugs.ruby-lang.org/
participants (1)
-
matz (Yukihiro Matsumoto)