Feature #15725
closedProposal: Add Array#reverse_sort, #revert_sort!, #reverse_sort_by, and #reverse_sort_by!
Description
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