U:RDoc::AnyMethod[iI"[]:ETI"Proc#[];TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [I"HInvokes the block, setting the block's parameters to the values in ;TI"Fparams 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 prc.()
invokes prc.call()
with ;TI"@the parameters given. It's syntactic sugar to hide "call".;T@o;
; [
I"OFor procs created using lambda
or ->()
an error ;TI"Lis generated if the wrong number of parameters are passed to the proc. ;TI"PFor procs created using Proc.new
or Kernel.proc
, ;TI"Hextra parameters are silently discarded and missing parameters are ;TI"set 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[params,...] -> obj;T0[ I"(*args);T@-FI" Proc;TcRDoc::NormalClass00