Proc.newとlambda

Proc.newのブロックの中でreturnを書くと、そのreturnは実行されるけど
lambdaのブロックの中でreturnを書いても、そのreturnは実行されない

irb(main):001:0> def foo
irb(main):002:1>  f = Proc.new{return "return from foo from inside proc"}
irb(main):003:1>  f.call
irb(main):004:1>  return "return from foo"
irb(main):005:1> end
=> nil
irb(main):006:0> def bar
irb(main):007:1>  f = lambda{ return "return from lambda"}
irb(main):008:1>  f.call
irb(main):009:1>  return "return from bar"
irb(main):010:1> end
=> nil
irb(main):011:0> puts foo
return from foo from inside proc
=> nil
irb(main):012:0> puts bar
return from bar
=> nil