Ruby Lazy Enumerators
blog.saeloun.com
blog.saeloun.com
Ruby was the first non-PHP programming language I learned, and I used to love writing scripts in it, that I now write in Python instead, but the complexities outlined above kept me from ever wanting to write any complicated/large projects in it.
Lambdas and procs are similar. The only real differences are that lambdas check to see if they have the correct number of arguments, and returning inside a lambda returns from the enclosing scope.
It took me hours to debug why Rails I18n.locale was not honored inside the block.