Estas são três formas de Ruby lidar com chunks de código como dados. Um bloco é passado para um método (não é um objeto); um Proc e uma lambda são objetos que envolvem um bloco (callable, armazenável). Procs e lambdas diferem sutilmente na validação de argumentos e no comportamento de return.
