On Nov 27, 2007, at 7:52 PM, Dave Thomas wrote:

>
> On Nov 27, 2007, at 8:44 PM, Charles Oliver Nutter wrote:
>
>> If you evaluate in reverse order, this will fail because @value has  
>> not been initialized yet. It is perhaps not a very good coding  
>> standard, but I think argument evaluation is almost always expected  
>> to be left to right.
>
> It also plays into calculated argument evaluation
>
>  def a(b, c=b+1, d=c+2)

Very true, but rubinius handles default argument code in left to right  
order, regardless of the argument evaluation. This is because default  
argument code is evaluated in the context of the callee (and done all  
in bytecode in rubinius), where as arguments are evaluated in the  
context of the caller.

They being completely different contexts, they're actually not  
connected (other than by syntax).

  - Evan

>
>
>
> Dave
>