From: akr@... Date: 2016-11-12T00:10:12+00:00 Subject: [ruby-core:78096] [Ruby trunk Feature#12902][Rejected] How about Enumerable#sum uses initial value rather than 0 as default? Issue #12902 has been updated by Akira Tanaka. Status changed from Feedback to Rejected Jeremy Daer wrote: > If we treated the first argument to `#sum` as the additive identity instead of "initial element," then it'd be very clear what to expect: I like current behavior than yours because the behavior can be explained simpler: Enumerable#sum returns initial + elem0 + elem1 + ... elemN. No need to distinguish empty and non-empty enumerable. Yours needs more complex explanation. > Plus, it's backward compatible, doesn't break existing behavior. Enumerable#sum and Array#sum is defined in many gems with different behaviors. Perfect backward compatibility is impossible. ---------------------------------------- Feature #12902: How about Enumerable#sum uses initial value rather than 0 as default? https://bugs.ruby-lang.org/issues/12902#change-61457 * Author: Aaron Lasseigne * Status: Rejected * Priority: Normal * Assignee: ---------------------------------------- In https://bugs.ruby-lang.org/issues/12217#note-3, Akira Tanaka, mentions that the default argument to sum is 0. This creates problems with non-numeric summations (e.g. strings). This would make the method more flexible. It also makes it behave more like `reduce`. I think using the initial value in the enumerable is less surprising than using 0. -- https://bugs.ruby-lang.org/ Unsubscribe: