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