Issue #15725 has been updated by matz (Yukihiro Matsumoto).

Status changed from Open to Rejected

Those methods do not make me feel 'spark joy'. If you really care about the performance, use `reverse!` after `sort!`.

Matz.

----------------------------------------
Feature #15725: Proposal: Add Array#reverse_sort, #revert_sort!, #reverse_sort_by, and #reverse_sort_by!
https://bugs.ruby-lang.org/issues/15725#change-78509

* Author: sikachu (Prem Sichanugrist)
* Status: Rejected
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Hello,

I would like to propose four new methods: `#reverse_sort`, `#revert_sort!`, `#reverse_sort_by`, and `#reverse_sort_by!` to Array.

These methods provides the most efficient way for user to get a reversed sorted array by calling `sort(_by)` then `.reverse!`.

As a language designer, I believe that we should suggest the most efficient way to perform a certain action to user. By introduce these methods, we can discourage user to use them instead of do `array.sort.reverse` or `array.sort {|a,b| b<=>a}` which are less performant.

I've looked through Redmine, and I saw that there was a proposal to introduce a similar method to Enumerable in https://bugs.ruby-lang.org/issues/8422, but was somewhat rejected due to the complication with infinite Enumerable. Given that Array is finite, I think this is the best place for these methods to be implemented.

I've attached a patch to implement these methods based on other `ary_sort` related methods. Please let me know your thought on how I could improve them to be mergeable, as I am not proficient in writing C.

I'm looking forward to hear your thoughts about this proposal. Thank you very much.

---Files--------------------------------
0001-Add-Array-reverse_sort-reverse_sort_by-methods.patch (6.29 KB)


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