Estas son tres formas en que Ruby maneja fragmentos de código como datos. Un block se pasa a un método (no es un objeto); un Proc y una lambda son objetos que envuelven un block (invocables, almacenables). Los Procs y lambdas difieren sutilmente en la verificación de argumentos y el comportamiento de return.
