mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Write document of Enumerable#sum
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
41ef7ec381
commit
41d002bbad
2 changed files with 30 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
Tue May 17 23:08:00 2016 Kenta Murata <mrkn@mrkn.jp>
|
||||
|
||||
* enum.c (enum_sum): [DOC] Write documentation.
|
||||
|
||||
Tue May 17 22:53:00 2016 Kenta Murata <mrkn@mrkn.jp>
|
||||
|
||||
* enum.c (enum_sum): Implement Enumerable#sum.
|
||||
|
|
26
enum.c
26
enum.c
|
@ -3668,6 +3668,32 @@ enum_sum_iter_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))
|
|||
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* enum.sum(init=0) -> number
|
||||
* enum.sum(init=0) {|e| expr } -> number
|
||||
*
|
||||
* Returns the sum of elements in an Enumerable.
|
||||
*
|
||||
* If a block is given, the block is applied to each element
|
||||
* before addition.
|
||||
*
|
||||
* If <i>enum</i> is empty, it returns <i>init</i>.
|
||||
*
|
||||
* For example:
|
||||
*
|
||||
* { 1 => 10, 2 => 20 }.sum {|k, v| k * v } #=> 50
|
||||
* (1..10).sum #=> 55
|
||||
* (1..10).sum {|v| v * 2 } #=> 110
|
||||
* [Object.new].each.sum #=> TypeError
|
||||
*
|
||||
* This method can be used for non-numeric objects by
|
||||
* explicit <i>init</i> argument.
|
||||
*
|
||||
* { 1 => 10, 2 => 20 }.sum([]) #=> [1, 10, 2, 20]
|
||||
* "a\nb\nc".each_line.lazy.map(&:chomp).sum("") #=> "abc"
|
||||
*
|
||||
* Enumerable#sum method may not respect method redefinition of "+"
|
||||
* methods such as Integer#+.
|
||||
*/
|
||||
static VALUE
|
||||
enum_sum(int argc, VALUE* argv, VALUE obj)
|
||||
|
|
Loading…
Reference in a new issue