[#42564] [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Makoto Kishimoto <redmine@...>

Feature #4043: グローバル関数current_classの提案

15 messages 2010/11/11
[#42774] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Yukihiro Matsumoto <matz@...> 2010/12/16

まつもと ゆきひろです

[#42834] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp> 2010/12/21

きしもとです

[#42835] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Yukihiro Matsumoto <matz@...> 2010/12/21

まつもと ゆきひろです

[#42838] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp> 2010/12/21

きしもとです

[#42845] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Yukihiro Matsumoto <matz@...> 2010/12/21

まつもと ゆきひろです

[#42577] Rubyのバグレポートのガイドライン — "Shota Fukumori (sora_h)" <sorah@...>

sora_hです。

11 messages 2010/11/15
[#42588] Re: Rubyのバグレポートのガイドライン — Yugui <yugui@...> 2010/11/18

2010/11/15 Shota Fukumori (sora_h) <sorah@tubusu.net>:

[#42638] Enumerable#categorize — Tanaka Akira <akr@...>

enumerable から hash を生成するメソッドとして

25 messages 2010/11/27
[#42643] Re: Enumerable#categorize — Yukihiro Matsumoto <matz@...> 2010/11/27

まつもと ゆきひろです

[ruby-dev:42643] Re: Enumerable#categorize

From: Yukihiro Matsumoto <matz@...>
Date: 2010-11-27 14:19:16 UTC
List: ruby-dev #42643
まつもと ゆきひろです

In message "Re: [ruby-dev:42638] Enumerable#categorize"
    on Sat, 27 Nov 2010 18:45:03 +0900, Tanaka Akira <akr@fsij.org> writes:

|enumerable から hash を生成するメソッドとして
|Enumerable#categorize を追加するのはどうでしょうか。

Enumerableからhashを生成するメソッドはちょうど昨日欲しいと思っ
たばかりなので、そういうメソッドの必要性は理解します。が、
categorize よりも先に「要素をブロックに渡して、そのブロックの
生成値によってハッシュを作るメソッド」が欲しいです。

つまり、

|  ary = [
|    ["matz", "Yukihiro Matsumoto"],
|    ["nobu", "Nobuyoshi Nakada"],
|    ["akr", "Tanaka Akira"],
|    ["usa", "Usaku NAKAMURA"],
|    ["naruse", "NARUSE, Yui"],
|    ["ko1", "SASADA Koichi"]
|  ]

  h = ary.xxx{|e| [e[1],e[0]]}
  #=> {"Yukihiro Matsumoto"=>["matz"],
       "Nobuyoshi Nakada"=>["nobu"],
       "Tanaka Akira"=>["akr"],
       "Usaku NAKAMURA"=>["usa"],
       "NARUSE, Yui"=>["naruse"],
       "SASADA Koichi"=>["ko1"]}

です。まだxxxに該当する適切な名前を思いついていませんが。これ
は(デフォルトでは)Enumerableの要素が配列であることを仮定して
いる categorize よりも汎用的ではないかと思います。

いや、 categorize は不要だとかまでは主張しませんが、こっちが
先に欲しいです。

|* ネストしたハッシュの生成
|* ハッシュの値の後処理
|* :seed, :op, :update オプション
|* 複数の値を取り出す

私の提案ではこの辺は対応できないので、 categorize の意味はあ
るとは思います。

で、このメソッドの適切な名前はなんでしょうね。make_mapとか考
えたのですが、美しくない。Lispとかに似たような関数なかったっ
けな。

                                まつもと ゆきひろ /:|)

In This Thread