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

From: Masaya TARUI <tarui@...>
Date: 2010-11-27 15:26:30 UTC
List: ruby-dev #42649
たるいです。

話が本題とずれてきてて、
別スレッドを作るべきかちょっとなやみましたが、

2010年11月28日0:02 SASADA Koichi <ko1@atdot.net>:
>
>  ささだです。
>
> (2010/11/27 23:19), Yukihiro Matsumoto wrote:
> >   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 について、just idea なんですが、
>
> - Enumerable#map に第一引数を渡せるようにする
>  - 第一引数に << していく
>  - 省略されれば []
> - Hash#<< を作る
>
> ってのはどうでしょうか。本当に思いつきなので、きっと駄目なところがたくさ
> んありそうですが。

injectの類似で、持ちまわすのがブロックの結果でなく第一引数というメソッドを用意するのはどうでしょうか?

module Enumerable

  def apply_to target
    self.each{|e|
      yield(target,e)
    }
    target

  end
end

ary = [
  ["matz", "Yukihiro Matsumoto"],
  ["nobu", "Nobuyoshi Nakada"],
  ["akr", "Tanaka Akira"],
  ["usa", "Usaku NAKAMURA"],

  ["naruse", "NARUSE, Yui"],
  ["ko1", "SASADA Koichi"]
]

p ary.apply_to({}){|r,e|
  r[e[1]] = e[0]
}

で {"Yukihiro Matsumoto"=>"matz", "Nobuyoshi Nakada"=>"nobu", "Tanaka
Akira"=>"akr", "Usaku NAKAMURA"=>"usa", "NARUSE, Yui" =>"naruse",
"SASADA Koichi"=>"ko1"}
が得られます。


--
樽家昌也(Masaya TARUI)
No Tool,No Life.

In This Thread