From: akr@... Date: 2016-11-05T02:29:29+00:00 Subject: [ruby-core:77946] [Ruby trunk Feature#12902][Feedback] How about Enumerable#sum uses initial value rather than 0 as default? Issue #12902 has been updated by Akira Tanaka. Status changed from Open to Feedback I think [].sum should return 0. Returning 0 is better than nil because programmers don't need to treat empty array specially. This behavior is different with Enumerable#reduce which returns nil for empty array. Also, string summation using Enumerable#sum is not good idea because it is slow. String#join is faster. So, we should not encourage Enumerable#sum for string summation. ---------------------------------------- Feature #12902: How about Enumerable#sum uses initial value rather than 0 as default? https://bugs.ruby-lang.org/issues/12902#change-61268 * Author: Aaron Lasseigne * Status: Feedback * 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: