Are these things really the same? * If I return from a SmalltalkLanguage block I wind up back in the scope where it was defined. It is effectively a continuation. * If I return from a RubyLanguage block I wind up back in the scope of the caller. It is effectively a lambda. Am I misunderstanding or what? require "Continuation" callcc do | ret | (1..10).each do | i | ret i end end This replicates the SmallTalk behavior. So, they are the same thing, but with different concepts of return. See CallCc. ---- See also SmalltalkBlocksAndClosures, BlocksInRuby, BlocksInManyLanguages ---- CategoryRuby CategorySmalltalk