File: C:/Ruby27-x64/share/ri/2.7.0/system/Proc/yield-i.ri
U:RDoc::AnyMethod[iI"
yield:ETI"Proc#yield;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [I"HInvokes the block, setting the block's parameters to the values in ;TI"F<i>params</i> using something close to method calling semantics. ;TI"EReturns the value of the last expression evaluated in the block.;To:RDoc::Markup::BlankLine o:RDoc::Markup::Verbatim; [
I"Oa_proc = Proc.new {|scalar, *values| values.map {|value| value*scalar } }
;TI"0a_proc.call(9, 1, 2, 3) #=> [9, 18, 27]
;TI"0a_proc[9, 1, 2, 3] #=> [9, 18, 27]
;TI"0a_proc.(9, 1, 2, 3) #=> [9, 18, 27]
;TI"0a_proc.yield(9, 1, 2, 3) #=> [9, 18, 27]
;T:@format0o;
; [I"HNote that <code>prc.()</code> invokes <code>prc.call()</code> with ;TI"@the parameters given. It's syntactic sugar to hide "call".;T@o;
; [
I"FFor procs created using #lambda or <code>->()</code> an error is ;TI"Cgenerated if the wrong number of parameters are passed to the ;TI"Cproc. For procs created using Proc.new or Kernel.proc, extra ;TI"Fparameters are silently discarded and missing parameters are set ;TI"to +nil+.;T@o;; [
I""a_proc = proc {|a,b| [a,b] }
;TI"#a_proc.call(1) #=> [1, nil]
;TI"
;TI"$a_proc = lambda {|a,b| [a,b] }
;TI"Wa_proc.call(1) # ArgumentError: wrong number of arguments (given 1, expected 2)
;T;
0o;
; [I"See also Proc#lambda?.;T:
@fileI"proc.c;T:0@omit_headings_from_table_of_contents_below0I""prc.yield(params,...) -> obj;T0[ I"(*args);T@-FI" Proc;TcRDoc::NormalClass00