* proc.c (proc_call): Improve Proc#call documentation. Patch by

Hsing-Hui Hsu.  [fix GH-761]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
drbrain 2015-02-12 01:46:33 +00:00
parent a1992e25b9
commit 678ae5d17f
2 changed files with 16 additions and 8 deletions

View File

@ -1,3 +1,8 @@
Thu Feb 12 10:46:14 2015 Eric Hodel <drbrain@segment7.net>
* proc.c (proc_call): Improve Proc#call documentation. Patch by
Hsing-Hui Hsu. [fix GH-761]
Thu Feb 12 04:33:02 2015 Benoit Daloze <eregontp@gmail.com>
* compar.c (cmp_equal): no more error hiding for Comparable#==.

19
proc.c
View File

@ -683,20 +683,23 @@ rb_block_clear_env_self(VALUE proc)
* <i>params</i> using something close to method calling semantics.
* Generates a warning if multiple values are passed to a proc that
* expects just one (previously this silently converted the parameters
* to an array). Note that prc.() invokes prc.call() with the parameters
* given. It's a syntax sugar to hide "call".
* to an array). Note that <code>prc.()</code> invokes
* <code>prc.call()</code> with the parameters given. It's a syntax sugar to
* hide "call".
*
* Returns the value of the last expression evaluated in the block. See
* also Proc#yield.
*
* a_proc = Proc.new { |scalar, *values| values.collect { |value| value*scalar } }
* a_proc.call(9, 1, 2, 3) #=> [9, 18, 27]
* a_proc[9, 1, 2, 3] #=> [9, 18, 27]
* a_proc.(9, 1, 2, 3) #=> [9, 18, 27]
*
* For procs created using <code>lambda</code> or <code>->()</code> an error
* is generated if the wrong number of parameters are passed to a Proc with
* multiple parameters. For procs created using <code>Proc.new</code> or
* <code>Kernel.proc</code>, extra parameters are silently discarded.
*
* Returns the value of the last expression evaluated in the block. See
* also <code>Proc#yield</code>.
*
* a_proc = Proc.new {|a, *b| b.collect {|i| i*a }}
* a_proc.call(9, 1, 2, 3) #=> [9, 18, 27]
* a_proc[9, 1, 2, 3] #=> [9, 18, 27]
* a_proc = lambda {|a,b| a}
* a_proc.call(1,2,3)
*