Re: 3.0.3

new topic     » goto parent     » topic index » view thread      » older message » newer message

Jeremy Peterson wrote:
> 
> Juergen Luethje wrote:
> > 
> > Helo Rob,
> > 
> > maybe you can add something like the following to 'misc.e':
> > }}}
<eucode>
> > global constant
> >    FALSE = 0,
> >    TRUE  = not FALSE
> > 
> > global type boolean (object x)
> >    if integer(x) then
> >       return x = FALSE or x = TRUE
> >    else
> >       return FALSE
> >    end if
> > end type
> > </eucode>
{{{

> > 
> > I think it would be pretty useful.
> > 
> > Regards,
> >    Juergen
> 
> Why not just
> 
> TRUE = 1 

Because it removes implementation dependancies.

It is generally accepted that when the concept 'FALSE' is implemented as an
integer, the value zero is used. However, there are quite a few different
implementations of 'TRUE', some use 1, some -1, and some use every non-zero
value. By defining 'TRUE' as 'not FALSE' it will work with any implementation.


Alsoh due to a quirk in the way that short-circuit IF evaluations work, it can
be made to execute faster when the conditions are separated out ...

global constant
   FALSE = 0,
   TRUE  = not FALSE

global type boolean (object x)
   if not integer(x) then return FALSE end if
   if x = FALSE return TRUE end if
   if x = TRUE  return TRUE end if
   return FALSE
end type


-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu