On Dec 28, 2003, at 09:04, Gavin Sinclair wrote:

> This, to me, is inconsistent and undesirable behaviour.  I would
> prefer this:
>
>   x = x     # NameError: undefined local variable or method `x' ...
>
> I haven't given it much thought, but the existing behaviour cost me 15
> minutes debugging, and I:
>  * don't see a benefit of the existing behaviour;
>  * do see a benefit (consistency) of changing the behaviour.

Isn't it this behavior that makes it possible to define a recursive 
block?

   y = 0
   x = proc{y += 1; x.call unless(y == 100); y}
   p x.call

I suppose you could require a prior assignment to x in this case, but 
that starts to smell like having to declare variables...

Just my $0.02,


Nathaniel

<:((><