Feature #13108
[Doc Request] Explicitly document Range#sum
Status:
Open
Priority:
Normal
Assignee:

Target version:

Description
While Range#sum
exists because it implements Enumerable#sum
, it is not noted how it works. While it does provide a hint that it is not an alias to inject(:+)
, it is not explained that (a..b).sum
implements (ba+1)*(a+b)/2
which is O((log n)^2)
instead of (a..b).inject(:+)
which is O(n log n)
. It might be worth while either explicitly document Range#sum
or at least documenting in Enumerable#sum
that Range#sum
has this behavior because the current documentation is not particularly descriptive and hides, what I think of, as quite a brilliant feature of 2.4.0.
Updated by snood1205 (Eli Sadoff) about 4 years ago
 Subject changed from [Doc Request] Explicitly Range#sum to [Doc Request] Explicitly document Range#sum