Mikael Høilund
5/25/2008 7:41:00 PM
On May 25, 2008, at 20:49, Tom Verbeure wrote:
> All,
>
> The code below:
>
> m =3D 5*(
> (1.0)
This is the cause of the unexpected behavior. =46rom what I can see, =20
Ruby is interpreting the newline after (1.0) as a statement separator. =20=
Compare:
puts 5*(
(1.0);
- (1.0/2.0)
)
What's actually happening is that the third line (- (1.0/2.0)) is seen =20=
as a separate statement, not as a continuation on the second line. The =20=
minus sign in the beginning of the line is interpreted as the unary =20
negation operator, not the binary (as in relating to two numbers, not =20=
one) subtraction operator.
This works, however:
puts 5*(
(1.0) -
(1.0/2.0)
)
A quick irb session also illustrates my point:
>> 1.0
=3D> 1.0
>> -1.0/2.0
=3D> -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=F8ilund