[#42735] [Ruby 1.9-Feature#4147][Open] Array#sample で重みを指定したい — Yoji Ojima <redmine@...>

Feature #4147: Array#sample で重みを指定したい

52 messages 2010/12/10
[#42791] [Ruby 1.9-Feature#4147][Assigned] Array#sample で重みを指定したい — Shyouhei Urabe <redmine@...> 2010/12/18

チケット #4147 が更新されました。 (by Shyouhei Urabe)

[#42800] Re: [Ruby 1.9-Feature#4147][Assigned] Array#sample で重みを指定したい — Masaya TARUI <tarui@...> 2010/12/19

> じゃあ反対ないので実装はともかく、この仕様は基本入れる方向で考えましょう。反対の人は意思表示お早めに。

[#42763] [Ruby 1.9-Bug#4159][Open] test_block_variables(TestRipper::ParserEvents) が失敗する — Kouhei Yanagita <redmine@...>

Bug #4159: test_block_variables(TestRipper::ParserEvents) が失敗する

8 messages 2010/12/14

[#42894] [Ruby 1.8-Feature#4207][Open] これから「1.8.8」の話をしよう -- 1.8がこの先生きのこるには — Shyouhei Urabe <redmine@...>

Feature #4207: これから「1.8.8」の話をしよう -- 1.8がこの先生きのこるには

24 messages 2010/12/26
[#42935] Re: [Ruby 1.8-Feature#4207][Open] これから「1.8.8」の話をしよう -- 1.8がこの先生きのこるには — Kenta Murata <muraken@...> 2011/01/04

むらたです。

[#42936] Re: [Ruby 1.8-Feature#4207][Open] これから「1.8.8」の話をしよう -- 1.8がこの先生きのこるには — Kenta Murata <muraken@...> 2011/01/05

むらたです。

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

From: Tanaka Akira <akr@...>
Date: 2010-12-07 11:52:15 UTC
List: ruby-dev #42713
2010年12月6日20:22 Yusuke ENDOH <mame@tsg.ne.jp>:

> また、Hash から Hash を返す map もあると便利かもしれません。
> しばしば要望きてると思いますが、なんで用意されないんでしたっけ。

Hash[enum.map {|e| [k, v] }] 相当なら、ちょうどまつもとさんが
[ruby-dev:42643] [ruby-dev:42645] で要望していますね。
良い名前が見つかっていませんが。

> あと、:seed は値ではなく値を生成する Proc を受け取るべきだと思います。
> Hash.new([]) と同じ設計不良になってしまいます。
>
>  p [[1, 2], [1, 3], [2, 5]].categorize(0, 1, seed: [], op: proc {|x,
> e| x << e })
>  {1=>[2, 3, 5], 2=>[2, 3, 5]}

これについては、Hash.new([]) ほど問題ではありません。
というのは、seed はそのまま結果に現れることはなく、
:op (や :update) を必ず通るからです。

実際、ドキュメントに書いてありますが、デフォルトの動作の配列生成は
  :seed => nil
  :op => lambda {|s, v| !s ? [v] : (s << v) }
のようにして実現可能で、カテゴリ毎に配列を作り、
破壊的に追加していくことは可能です。

また、seed に指定して問題になるものばかりではないので、
:seed を Proc にするのは反対です。
たとえば整数を指定したいときには Proc で指定するのは無駄でしょう。

:seed でないオプション (たとえば :seed_proc) で、あるカテゴリの最初の
要素が見つかったときに呼ばれて seed を生成する Proc を指定する、というのは
ありうると思います。

しかし、それがないとなにかができないというものではなく、
便利かどうかもよくわからないので、今のところそれほど惹かれません。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread

Prev Next