RaFaL Pocztarski wrote:

> I haven't got any contact with NaN before, but when Tim pointed that
> NaN!=NaN is true in IEEE I thought that it does make sense. I see pros
> and cons and it's not so ugly and non-intuitive as it can look. When
> comparing $a and $b as numbers there is no need for $a==$b!=NaN, if
> NaN!=NaN then $a==$b is ok for any values of $a and $b, it would be true
> only if $a and $b are numbers and they are equal. If NaN==NaN is true,
> then the longer $a==$b!=NaN is needed. So when comparing two scalars as
> numbers NaN!=NaN being true makes it easier. But then "until $inflation
> != NaN" would be useless as NaN!=anything is always true (NaN!=NaN, and
> NaN!=anynumber). With NaN!=NaN some other way like $x.isNaN or $x.isnum
> would be needed. Or maybe NaN evaluates to 'NaN' in string context and
> +$x eq 'NaN' (or +$x eq NaN) could be used? NaN==NaN being false is in
> fact very intuitive for me, as NaN is something without any numerical
> meaning, so numerically compared to anything doesn't make sense (as ==
> means numerical equality, not just equality). Maybe it should be undef
> instead of false?

I'm coming to this thread after nearly a week of everyone weighing in
their opinions, and fully expect to see what I'm about to type in
stated by someone else, days ago, a little further down the long list
of posts.

What if not-a-number stringifies to NaN, but numerically always compares
to false, so the conditional in the example could CLEARLY be written

        while $inflation ne NaN;

-- 
                                           David Nicol 816.235.1187
                                            1,3,7-trimethylxanthine

Reply via email to