Project

General

Profile

Actions

Feature #15725

closed

Proposal: Add Array#reverse_sort, #revert_sort!, #reverse_sort_by, and #reverse_sort_by!

Added by sikachu (Prem Sichanugrist) over 3 years ago. Updated about 3 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:91957]

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


Related issues 1 (1 open0 closed)

Related to Ruby master - Feature #12648: `Enumerable#sort_by` with descending optionOpenActions
Actions

Also available in: Atom PDF