"Michael Geary" <Mike / DeleteThis.Geary.com> wrote in message
news:10allar4vlk2092 / corp.supernews.com...
> > what makes zero
> > so special that it would warrant being false?
>
> Because in the real world, zero means false.
>
> Suppose you have zero quarts of milk in your refrigerator. I am visiting
and
> I ask:  Got milk?
>

I just wanted to note that I agree with you 100% and find any other
interpretation baffling.  This is a common error for me - 99% of my Ruby
programming errors stem from runtime NoMethodErrors on nil because of Ruby's
failure to correctly interpret some boundary condition.  If numbers always
evaluate to true, it seems absurd to allow them to be used in conditionals
predicating on truth - we should at least get a good diagnostic, IMHO.
Arguments about the elegance or uniformity of zero's truth are pretty weak
in my opinion, due to the fact that Ruby does not exist in a vacuum.  LOTS
of external libraries, extensions, interfaces, etc, implicitly and
explicitly require zero to be false.  Personally, I think that the semantics
of the spaceship operator (<=>  a <=> a -> -1, 0, +1 ) lend credence to the
notion of correlation between the syntax and semantics of numeric values
(especially zero).

-regards,
mm