Project

General

Profile

Bug #9989

Docs give wrong information for sort block return values

Added by robyoder (Rob Yoder) almost 6 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
2.1.2
[ruby-core:63383]

Description

Under the Array.sort documentation, this statement is made:

Comparisons for the sort will be done using the <=> operator or using an optional code block.

The block must implement a comparison between a and b, and return -1, when a follows b, 0 when a and b are equivalent, or +1 if b follows a.

This is incorrect. The default sort block is { |a,b| a <=> b }. That is ascending sort, where 2 would follow 1. However, 1 <=> 2 returns -1, not +1 as the statement claims. The statement should read:

The block must implement a comparison between a and b, and return -1 when b follows a, 0 when a and b are equivalent, or +1 if a follows b.


Related issues

Related to Ruby master - Bug #10125: Array#sort and #sort! documentation issueClosedzzak (Zachary Scott)Actions

Updated by robyoder (Rob Yoder) almost 6 years ago

This occurs under Array.sort and Array.sort! (http://www.ruby-doc.org/core-2.1.2/Array.html#method-i-sort)

Enumerable.sort vaguely states:

The block should return -1, 0, or +1 depending on the comparison between a and b.

(http://ruby-doc.org/core-2.1.2/Enumerable.html#method-i-sort)

Updated by ayumin (Ayumu AIZAWA) over 5 years ago

  • Related to Bug #10125: Array#sort and #sort! documentation issue added

Updated by stomar (Marcus Stollsteimer) about 3 years ago

  • Status changed from Open to Closed

Fixed with r51859 (Array) and r57770 (Enumerable).

Also available in: Atom PDF