A deep dive into how MRI implements blocks, Ruby's implementation of closures. Also an explanation of the difference between blocks, lambdas, procs and bindings.
of a closure [11, 14] which is a data structure containing a lambda expression, and an environment to be used when that lambda expression is applied to arguments. Sussman and Steele. Scheme: An interpreter for extended lambda calculus