Issue #11090 has been updated by Yukihiro Matsumoto.


As Ilya proposed, Enumerable#uniq and Enumerable::Lazy#uniq is reasonable.

Matz.


----------------------------------------
Feature #11090: Enumerable#each_uniq and #each_uniq_by
https://bugs.ruby-lang.org/issues/11090#change-59650

* Author: Hans Mackowiak
* Status: Open
* Priority: Normal
* Assignee: Nobuyoshi Nakada
----------------------------------------
currently if you want to iterate the first uniq elements you either need to call `uniq` and create a big array or you need to count the elements yourself
if you have an `Enumerable` with an indifferent size (maybe something with `cycle` or something you cant `rewind`) calling the `Array#uniq` method might not what you want.

the idea is adding `each_uniq` which does only iterate though the elements which are not already send (it does count for you)
a second `each_uniq_by` does work similar with chunk and does takes a block using a generated `Enumerator`


IceDragon200 did make the following gist/sample in ruby, it might be written in C later to make it faster/better. https://gist.github.com/IceDragon200/5b1c205b4b38665c308e for better view i also added it as attachment.


---Files--------------------------------
each_uniq.rb (830 Bytes)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>