[#97678] [Ruby master Feature#16752] :private param for const_set — bughitgithub@...
Issue #16752 has been reported by bughit (bug hit).
5 messages
2020/04/02
[ruby-core:97770] [Ruby master Feature#16428] Add Array#uniq?, Enumerable#uniq?
From:
matz@...
Date:
2020-04-10 04:41:59 UTC
List:
ruby-core #97770
Issue #16428 has been updated by matz (Yukihiro Matsumoto).
Status changed from Open to Feedback
You said, "I often need to check if an array have duplicate elements". But we cannot think of the real-world use-case.
Could you elaborate on how to use the proposed `#uniq?` and its benefit?
Matz.
----------------------------------------
Feature #16428: Add Array#uniq?, Enumerable#uniq?
https://bugs.ruby-lang.org/issues/16428#change-84984
* Author: kyanagi (Kouhei Yanagita)
* Status: Feedback
* Priority: Normal
----------------------------------------
I propose Array#uniq?.
I often need to check if an array have duplicate elements.
This method returns true if no duplicates are found in self, otherwise returns false.
If a block is given, it will use the return value of the block for comparison.
This is equivalent to `array.uniq.size == array.size`, but faster.
```
% ~/tmp/r/bin/ruby -rbenchmark/ips -e 'a = Array.new(100) { rand(1000) }; Benchmark.ips { |x| x.report("uniq") { a.uniq.size == a.size }; x.report("uniq?") { a.uniq? } }'
Warming up --------------------------------------
uniq 25.765k i/100ms
uniq? 76.544k i/100ms
Calculating -------------------------------------
uniq 278.144k (4.1%) i/s - 1.391M in 5.010858s
uniq? 981.868k (ア 5.1%) i/s - 4.975M in 5.081611s
```
I think the name `uniq?` is natural because Array already has `uniq`.
patch: https://github.com/ruby/ruby/pull/2762
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>