Issue #7226 has been updated by Akinori MUSHA.


Martin Drst wrote:
> I tried some very simple cases, and didn't see much of a difference. It'soften better to start with a simple implementation and make it more complicated if additional performance is really needed.

If .to_a.join is what you want then you can and should live with it.

I implied by the phrase "far from efficient" that it would be against our expectation for #join to consume unnecessary time and space.  What .to_a.join would do is to iterate to accumulate to iterate to accumulate, which certainly involves unnecessary complexity.

> > In any case, the method would better be implemented in Enumerable rather than in Set,
> 
> I agree.

Enumerable represents a stream, #join is a stream friendly operation by nature, and I believe no .to_a should take place there.

With all being said, Enumerable#join has a history of once being added and then removed later as seen in #1893.
We must work out a way to add it again, resolving the compatibility issue with Array#join somehow.

----------------------------------------
Feature #7226: Add Set#join method as a shortcut for to_a.join
https://bugs.ruby-lang.org/issues/7226#change-46910

* Author: Nathan Broadbent
* Status: Rejected
* Priority: Normal
* Assignee: Akinori MUSHA
* Category: lib
* Target version: next minor
----------------------------------------
I was surprised that `Set.new.join` gives me a NoMethodError. 
This patch that adds a #join method to Set, which is a shortcut for `to_a.join`.


---Files--------------------------------
add_join_to_set.patch (788 Bytes)
add_join_to_set.patch (756 Bytes)


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