evan_tech

Previous Entry Share Next Entry
12:53 pm, 6 Jan 06

ruby blocks

A friend has been learning Ruby and asking questions. His first: why are procs and blocks different? (More simply: why aren't blocks special syntax for procs?)

All I could come up with is that "return" in a block returns from the lexically enclosing function, while "return" in a proc returns from the proc itself. (This is a useful distinction, though it leads to the confusing LocalJumpError exception when you call a block after control has passed away from its lexically enclosing function...)

Is that it?