Issue #14097 has been updated by duerst (Martin Drst).


matz (Yukihiro Matsumoto) wrote:
> I am not sure your real intention. Do you want mutating variation of or-operator?
> Or just more readable alias of or-operator?

mame (Yusuke Endoh) wrote:
> I'm neutral to your proposal itself.  My two cents: `Array#union` should return a new array instead of modifying self, and `Array#union!` should be its modifying version.

I would definitely prefer Yusuke's version to a version where Array#union is not modifying. While the modifying version will occasionally be useful, in general, we should gently push people towards using non-modifying code.


----------------------------------------
Feature #14097: Add union and difference to Array
https://bugs.ruby-lang.org/issues/14097#change-72161

* Author: ana06 (Ana Maria Martinez Gomez)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Currently there is a concat method in ruby which does the same as +, but modifying the object. We could introduce a union and difference methods, which would be the equivalent for the `|` and `-` operators. This operators are normally less used due to lack of readability and expressivity. You end seeing thinks like:

```
array.concat(array2).uniq!
```

just because it is more readable. When it could be written like:

```
array |= array2
```

But, as this is not clear for some people, the new method will solve this problem:

```
array.union(array2)
```

And now this is clean and readable, as everybody expect from Ruby, the language focused on simplicity and productivity. ;)


Can I send a PR? :)





-- 
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>