Invokes the block, setting the block’s parameters to the values in
params 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”.

For procs created using lambda or ->() an
error is generated if the wrong number of parameters are passed to a Proc with multiple parameters. For procs created
using Proc.new or Kernel.proc, extra parameters
are silently discarded.

Returns the value of the last expression evaluated in the block. See also
Proc#yield.

Returns the number of arguments that would not be ignored. If the block is
declared to take no arguments, returns 0. If the block is known to take
exactly n arguments, returns n. If the block has optional arguments, return
-n-1, where n is the number of mandatory arguments. A proc
with no argument declarations is the same a block declaring ||
as its arguments.

Invokes the block, setting the block’s parameters to the values in
params 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”.

For procs created using lambda or ->() an
error is generated if the wrong number of parameters are passed to a Proc with multiple parameters. For procs created
using Proc.new or Kernel.proc, extra parameters
are silently discarded.

Returns the value of the last expression evaluated in the block. See also
Proc#yield.

Returns a curried proc. If the optional arity argument is given,
it determines the number of arguments. A curried proc receives some
arguments. If a sufficient number of arguments are supplied, it passes the
supplied arguments to the original proc and returns the result. Otherwise,
returns another curried proc that takes the rest of arguments.

Invokes the block, setting the block’s parameters to the values in
params 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”.

For procs created using lambda or ->() an
error is generated if the wrong number of parameters are passed to a Proc with multiple parameters. For procs created
using Proc.new or Kernel.proc, extra parameters
are silently discarded.

Returns the value of the last expression evaluated in the block. See also
Proc#yield.