ruby-trunk-changes r55707 - r55713

今日は Enumerable#uniq と Enumerator::Lazy#uniq という新規メソッドの追加がありました。

nobu: r55707 2016-07-20 17:35:25 +0900

ary_add_hash() と ary_add_hash_by() から Hash に要素がなければ追加するという処理を rb_hash_add_new_element() という関数に切り出しています。

svn: r55708 2016-07-20 17:35:26 +0900

version.h の日付更新。

nobu: r55709 2016-07-20 17:39:12 +0900

Enumerable#uniq というメソッドを追加しています。 ブロックなしなら each の値で、ブロックつきならブロックの評価値を元に重複を排除した配列を返します。重複があった場合は最初の要素が採用されます。この点(最初の要素が採用される)はチケットをみても意図的みたいなので仕様だと思います。つまり将来的にころっと変わるようなものではないと思います。 NEWS ファイルにも記載が欲しいですね。 [ruby-core:68969] [Feature #11090]

nobu: r55710 2016-07-20 17:44:08 +0900

r55709 の続きで今度は Enumerator::Lazy#uniq が追加されています。 なるほどー、無限リスト(でなくてもいいけどとても大きいリスト)から重複を省いて最初の N 個を取り出す、とか確かに使いどころありそう…かも。 [ruby-core:68969] [Feature #11090]

kazu: r55711 2016-07-21 00:58:59 +0900

r55709 のテストの typo 修正。しかし r55706 の lib/unicode_normalize/tables.rb の UNICODE_VERSION 削除が意図せず revert されてしまっていますね。

svn: r55712 2016-07-21 00:59:00 +0900

version.h の日付更新。

kazu: r55713 2016-07-21 01:00:12 +0900

r55711 の意図しない UNICODE_VERSION の復活を revert しています。