[#38725] [Bug #1720] [NaN] == [NaN] が true になる — tadayoshi funaba <redmine@...>
Bug #1720: [NaN] == [NaN] が true になる
[#38731] FreeBSD で ruby-mecab のライブラリ参照の不具合 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
きしもとです
[#38762] Re: [ruby-cvs:31110] Ruby:r23892 (trunk): * rational.c (float_to_r): always returns rational. — "Yugui (Yuki Sonoda)" <yugui@...>
On 6/29/09 8:31 PM, tadf@ruby-lang.org wrote:
[#38782] [Bug:trunk] Re: [ruby-cvs:31281] Ruby:r24063 (trunk): * ext/tk/extconf.rb: New strategy for searching Tcl/Tk libraries. — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
永井@知能.九工大です.
こんにちは、なかむら(う)です。
永井@知能.九工大です.
こんにちは、なかむら(う)です。
永井@知能.九工大です.
こんにちは、なかむら(う)です。
永井@知能.九工大です.
永井@知能.九工大です.
こんにちは、なかむら(う)です。
押田です。
[#38821] セキュリティモデルのドキュメント — Shugo Maeda <shugo@...>
前田です。
[#38836] ext/tk/extconf.rb creates a file in $srcdir — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#38843] 複素数リテラルについて — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
> * 互換性はどうか。大丈夫のはずだが、見落としは
遠藤です。
> は十分検討されたのでしょうか。積極的に反対なわけではないですが、
遠藤です。
> 読み書きがやさしいのはわかるんですが、1+2i が書けても 1+ni が書けない
[#38850] Rational#hash — Tadayoshi Funaba <tadf@...>
いつだったか、rational などの hash が変ったようですが、意味が解っていな
[#38900] rb_eval_string_protect and encoding — Masaki Suketa <masaki.suketa@...>
助田です。
なかだです。
助田です。
[#38912] String#valid_encoding?にオプションが欲しい — Fujioka <fuj@...>
xibbarこと藤岡です。(なぜか届かないので再送します)
成瀬です。
xibbarです。
xibbarです。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
[#38924] thread switch hook for RubyCocoa — Nobuyoshi Nakada <nobu@...>
なかだです。
木村わ@RubyCocoaチーム/MacPorts port:rubyメンテナです。
木村わ@RubyCocoaです。
[#38932] Enumerator#peek — Tanaka Akira <akr@...>
Enumerator#peek を新設するのはどうでしょうか。
けいじゅ@いしつかです.
In article <E1MVnmx-00046e-PP@keiju.ishitsuka.com>,
けいじゅ@いしつかです.
In article <E1MW8kB-0001fM-56@keiju.ishitsuka.com>,
[#38938] Re: [ruby-list:46234] Re: irbでの式展開中の動作について — keiju@... (石塚圭樹)
けいじゅ@いしつかです.
[#38971] [Bug #1848] Net::SSH hangs — Shyouhei Urabe <redmine@...>
Bug #1848: Net::SSH hangs
チケット #1848 が更新されました。 (by Shyouhei Urabe)
Shyouhei Urabe さんは書きました:
[ruby-dev:38962] [Feature #1840] Hash に要素追加して self を返すメソッド
Feature #1840: Hash に要素追加して self を返すメソッド
http://redmine.ruby-lang.org/issues/show/1840
起票者: Kimura Yoshihiro
ステータス: Open, 優先度: Low
配列から Hash を作るときなどに、よく
a.inject({}) {|h, x| h[x] = ...; h }
みたいにするのはもはやイディオムと言ってよいと思いますが(*1)、
「; h」の部分が少々オマジナイっぽいのが気になっていました。
気になったついでに検索してみたら他にもそのような意見を目にしたので(*2)、
Hash に「要素追加して self を返す」ようなメソッドを追加することを
提案してみます。
いくつか選択肢を考えてみました:
1. Hash#store が self を返す
仕様が変わるので互換性の面で問題が出るかもしれません。
しかも h.store(x, ...) だと字面が多くなるという。
h.store(*v) のように書けるケースなら短かくなるかもしれません。
2. Array#insert に合わせて Hash#insert を追加する
[]=, store, insert と似たようなのが複数あるのは、初心者にとって
単にわかりにくいだけかもしれません。
3. Hash#<< を追加する
ML を検索したら、[ruby-list:44686] でまつもとさんが、
>ここからの類推で言うとHashに「<<」演算子を追加したとしても、
>
> a << b
>
>は a.store(*b) と期待されてしまうのではないでしょうか。少な
>くとも私は最初そう思いました。
とおっしゃっているのを見つけました。
これを使うと、h << [k, v] << ... して h.assoc(k) した結果が Array
とまったく同じになる、という美しさがあります。
また、キーと値の配列に対して a.inject({}, &:<<) で済んでしまうのは
うれしいかもしれません。
4. Enumerable#each_with_object を使う
それはそれでありかもしれません。個人的には、each のついでに… と
いう名前を object が欲しい局面で使うのはなんとなく違和感があります。
似た名前の each_with_index が self を返すからかもしれません。
5. その他
このイディオムを使う局面は、キーの集合を別の集合にマッピングした新
しい Hash が欲しい、というケースだと思われます。それを
「キーの集合に {}を inject する」と表現することが、そもそも直感的で
ないとも考えられます。
# 「zip して flatten して * 展開」というのと同様に
Hash 生成用のクラスメソッドとして、例えばこんなのがあると便利かも
しれません(*3)。
def Hash.map(enum)
if block_given?
enum.inject({}) {|h, k| h[k] = yield k; h }
else
enum.inject({}) {|h, v| h.store(*v); h }
end
end
# ex
Hash.map(string_keys, &:size) # 文字列 => サイズ
Hash.map(values.each_with_index) # 値 => インデクス
Hash.map(other_hash.map {|k, v| [v, k] }) # 値 => キー
他の方の意見やアイデアも聞いてみたいです。
(*1)
Google Code Search で「lang:"ruby" inject\({}\).+;\s*\w+\s*}」
とやったら 2,000 件ヒットしました。
(*2)
http://subtech.g.hatena.ne.jp/cho45/20071128/1196239612 とか
http://d.hatena.ne.jp/takkan_m/20071212/1197466247 とか
http://wota.jp/ac/?date=20081025#p09 とか
某chとか
(*3)
過去、某chに似たようなのを書きこんだのは私です
----------------------------------------
http://redmine.ruby-lang.org