Hola Gabriel, excelente explicación. Muy buenos tus artículos, sigue así!

Tengo una duda.

En el último ejemplo de Proc enviaste 3 parámetros:

mayusculas.call("Gabriel", "Gomez", "Gomez")

Pero el bloque solo tiene un argumento |block|

En contraste en el último ejemplo de Lambda también enviaste 2 parámetros, pero esta vez saca un error.

mayusculas = lambda { |arg| puts arg.upcase }

mayusculas.call("Gabriel", "Gomez")

Este error es razonable porque llamaste al Lambda con 2 argumentos pero solo ejecutas el bloque con 1 : |arg|.

Por qué en el Proc no pasa esto?

--

--