From: "David A. Black" Date: 2005-10-07T20:28:59+09:00 Subject: yield and call not identical? Hi -- I'd always thought that yield was just syntactic sugar for calling the block, but I notice there's at least one difference: def x(&b) b.call puts "Still here (x)" end def y yield puts "Still here (y)" end lam = lambda { return } x &lam y &lam Output: Still here (x) retu.rb:11: unexpected return (LocalJumpError) from retu.rb:11:in `y' from retu.rb:14 I'm trying to sort out all the return/Proc/lambda combinations... and this one struck me as odd. David -- David A. Black dblack@wobblini.net