La Aridad de un Proc

  1. La aridad de un proc o lambda es el número de argumentos que espera.
  2. Los objetos Proc disponen de un método arity que retorna el número de argumentos que espera
    lambda{||}.arity        # => 0. No arguments expected
    lambda{|x| x}.arity     # => 1. One argument expected
    lambda{|x,y| x+y}.arity # => 2. Two arguments expected
    
  3. Si el Proc acepta un número arbitrario de argumentos mediante un argumento final prefijado con *, el método arity retorna un número negativo de la forma -n-1. Esto indica que requiere n argumentos pero que puede tener también argumentos adicionales.
    lambda {|*args|}.arity        # => -1.  ~-1 = -(-1)-1 = 0 arguments required
    lambda {|first, *rest|}.arity # => -2.  ~-2 = -(-2)-1 = 1 argument required
    

Casiano Rodriguez León 2015-01-07