On May 25, 2008, at 20:49, Tom Verbeure wrote:

> All,
>
> The code below:
>
> m = 5*(
>       (1.0)

This is the cause of the unexpected behavior. From what I can see,  
Ruby is interpreting the newline after (1.0) as a statement separator.  ompare:

puts 5*(
   (1.0);
   - (1.0/2.0)
)

What's actually happening is that the third line (- (1.0/2.0)) is seen  s a separate statement, not as a continuation on the second line. The  inus sign in the beginning of the line is interpreted as the unary  
negation operator, not the binary (as in relating to two numbers, not  ne) subtraction operator.

This works, however:

puts 5*(
   (1.0) -
   (1.0/2.0)
)

A quick irb session also illustrates my point:

 >> 1.0
=> 1.0
 >> -1.0/2.0
=> -0.5
 >>
 >> 1.0 -
?> 1.0/2.0

The fact that the last prompt is "?>", not ">>" is the key point here.

Hope this helps
Mikael H°Úlund