Patrick Toomey wrote:
> I guess that is what surprises me.  I would expect return to work 
> exactly like raise.

I on the other hand expect "raise" to work exactly like "return". :-)

> Someone else gave the example of simplifying my question down to the 
> equivalent of trying the following
> 
> x = return 9
> 
> Why shouldn't this be valid?

Because "return" never returns. (Uh, this starts sounding like Zen...)

 >  As shown above, raise seems to return nil,

No, "raise" does neither return nil nor anything else.  It does not 
return in the same way as "return" never returns.  The whole point of 
the two is that they do *not* behave like an expression but transfer 
control flow up the call stack.

> and return seems like it should return a similar value if there is no 
> other reasonable return value.  Just for my own curiosity, what 
> implications would returning "nil" have?

It does not work.  Please take the time and meditate about this.

 > Anyway, thanks for all your
> help.  I realize most of this is of academic value, but it really helps 
> to see how Ruby works underneath.

In this case I'd rather say, you hit behavior that is common to *all* 
programming languages that know "return".  But I get the feeling that 
you still not fully understood the difference between an arbitrary 
expression and a return statement...

Kind regards

	robert