Re: Uninitialized Variables
- Posted by Derek Parnell <ddparnell at bigpond.com> Mar 23, 2002
- 468 views
> > > > This seems to work: > > -------------- > > atom x,nan,inf > > inf = 1e300 * 1e300 > > nan = inf / inf > > > > x = nan > > > > if x = nan then > > puts(1, "x is not a number\n") > > end if > > ? x = nan > > ? x != nan > > > > Actually, it doesn't. Because > > (10 = nan) > (2.3 = nan) > > will also evaluate as true and > > (10 != nan) > > will evaluate as false. > > You need to be able to tell a non-nan from a nan... > Umm, did you actually try it, Andy. Here is an expanded version: ------------------ atom x,y,nan,inf inf = 1e300 * 1e300 nan = inf / inf x = nan y = 10 if x = nan then puts(1, "x is not a number\n") else puts(1, "x is a number\n") end if if y = nan then puts(1, "y is not a number\n") else puts(1, "y is a number\n") end if ? x = nan ? x != nan ? y = nan ? y != nan ? 10 = nan ? 10 != nan ? nan ? inf ------------------ I get the following output: x is not a number y is a number 1 0 0 1 0 1 -nan inf ------------- which seems just what I'd expect. ---------- Derek.