In Ruby you can have closures with a Block, a Proc or a Lambda. They are very similar and have subtle differences.
I've found this article very clear to me: Understanding Ruby Blocks, Procs and Lambdas
In short, for what I understood, Blocks cannot have parameters and ( http://pastie.org/3107157 ) cannot be stored while Procs can like Lambdas.
Blocks cannot execute a return statement, Procs can and the calling method will return, Lambdas can too and simply return the value to the calling method.
Here are the scope examples
with Blocks: http://www.pastie.org/3099991
with Procs: http://www.pastie.org/3099995