Roger Pack wrote:
>     p = proc do |arg|
>       return if arg == 17
>       puts arg
>     end
> 
>     p[1]  # prints "1"
>     p[17] # prints nothing
> 
>     p = Proc.new do |arg|
>       return if arg == 17
>       puts arg
>     end
> 
>     p[1]  # prints "1"
>     p[17] # raises LocalJumpError

In 1.8 "proc" means "lambda" and "lambda" can be returned from. I think 
a similar behavioral difference still exists in Ruby 1.9.

I'd love to see return/break/next behavior clearly specified in all 
cases, but it's a little "guessy" right now. Check RubySpecs for all the 
weird wildness.

- Charlie