[ruby-core:79905] [Ruby trunk Bug#9989][Closed] Docs give wrong information for sort block return values

From: sto.mar@...
Date: 2017-03-04 13:26:41 UTC
List: ruby-core #79905
Issue #9989 has been updated by Marcus Stollsteimer.

Status changed from Open to Closed

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

----------------------------------------
Bug #9989: Docs give wrong information for sort block return values
https://bugs.ruby-lang.org/issues/9989#change-63335

* Author: Rob Yoder
* Status: Closed
* Priority: Normal
* Assignee: Zachary Scott
* Target version: 2.2.0
* ruby -v: 2.1.2
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
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.



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

In This Thread

Prev Next