Issue #16146 has been updated by duerst (Martin D=FCrst).


jonathanhefner (Jonathan Hefner) wrote:
> Dan0042 (Daniel DeLorme) wrote:
> > What you're asking for is a O(n=B2) operation. I'm not sure it's a good=
 idea to make that so easy and transparent as a core method.
> =

> Although the given example specified a two-argument block, the original p=
ost references `uniq`, which accepts a one-argument block.  Using a one-arg=
ument block can result in an O(n) implementation.

Well, that assumes that the block return values can be ordered. But it's ea=
sy to create cases where values can be compared for equality, but not order=
ed. Example: `[1, 'abc']`.

Also, this proposal is about adding a block to `difference`, but if we do t=
hat, we should add it to `union` and `intersection` and so on, too.


----------------------------------------
Feature #16146: Array .difference allow custom comparison
https://bugs.ruby-lang.org/issues/16146#change-82013

* Author: ngomez (Nancy Gomez)
* Status: Open
* Priority: Normal
* Assignee: =

* Target version: =

----------------------------------------
Hello!

I wanted to know if there's any plan to implement the ability to define com=
parison between individual items in arrays.

Here is where I originally asked the question on Stack Overflow: https://st=
ackoverflow.com/questions/57316775/is-there-any-way-to-specify-how-to-compa=
re-of-array-of-objects-for-difference-f

But specifically, I noticed nearly all the existing Array functions allow u=
s to define ways for comparison, such as #uniq but #difference does not :( =
This is quite unfortunate but I'm hoping it's just because this function wa=
s introduced in 2.6.0, and hopefully this feature can be implemented?

Thanks for any and all info :)



-- =

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

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