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

Feature #4043: =E3=82=B0=E3=83=AD=E3=83=BC=E3=83=90=E3=83=AB=E9=96=A2=E6=95=

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:42644] Re: Enumerable#categorize

From: Tanaka Akira <akr@...>
Date: 2010-11-27 14:35:51 UTC
List: ruby-dev #42644
2010年11月27日23:19 Yukihiro Matsumoto <matz@ruby-lang.org>:

> 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 よりも汎用的ではないかと思います。

確認したいのですが、ハッシュの値は配列になるのですね?

配列でなく、最後の値なら、Hash[ary.map {|e| [e[1], e[0]] }] と等価だと
思うので。

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

hashmap というのが一番に思い浮かびましたが、
ハッシュの値が配列とすると違うなぁ。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread