[DGD] boolean integers: mudos vs dgd
Noah Gibbs
noah_gibbs at yahoo.com
Sun Apr 21 17:44:18 CEST 2013
Kris,
The standard defines and has always defined true as not-zero *on input*. But logical and relational operators are required to return 1 or 0. Since 1 is not zero, and thus true, that's a perfectly consistent way to do it.
I just went and looked it up after Dworkin's reply :-)
________________________________
From: Kris Van Hees <aedil at alchar.org>
To: All about DGD and Hydra <dgd at dworkin.nl>
Sent: Sunday, April 21, 2013 8:04 AM
Subject: Re: [DGD] boolean integers: mudos vs dgd
I do not have the standard (and previous historical versions) at hand right
now, but I believe there was a time where a truth value was defined as not-0,
i.e. not false. Under that interpretation a case could be made that a truth
value can be anything that is not 0 (false). However, there are certainly
other implications that help drive a sensible value to be used. For one, what
would the !0 (negation of false) yield as value? Why would 3 || 5 evaluate as
3 and not 99? Given that || is a logical or-operator, it should yield a
boolean (true/false) result, and that need not be defined as x || y being
equivalent with (x ? x : (y ? y : 0)). In fact, why would it be? What would
you define as the datatype of the result of the || operator? In LPC it would
need to be mixed, since you could do 3 || 5.6 or 5.4 || "string", etc...
Kris
On Sun, Apr 21, 2013 at 07:52:01AM -0700, Noah Gibbs wrote:
> I think it's actually undefined in C as well, according to standard. But if it's undefined, 1 is a perfectly good answer.
>
>
> ________________________________
> From: Felix A. Croes <felix at dworkin.nl>
> To: dgd at dworkin.nl
> Sent: Sunday, April 21, 2013 4:11 AM
> Subject: Re: [DGD] boolean integers: mudos vs dgd
>
>
> Raymond Jennings <shentino at gmail.com> wrote:
>
> > A friend of mine (blain) reports that the expression (5 || 3) returns 5,
> > and the expression (3 || 5) returns 3, whereas dgd returns 1 for both of
> > them.
>
> It's 1 in C. || evaluates to a boolean value.
>
>
> > First of all, any major reason for the difference?
>
> Who knows what the reason might be? It's MudOS, not DGD, which has some
> explaining to do.
>
> Regards,
> Felix Croes
> ____________________________________________
> https://mail.dworkin.nl/mailman/listinfo/dgd
> ____________________________________________
> https://mail.dworkin.nl/mailman/listinfo/dgd
--
Never underestimate a Mage with:
- the Intelligence to cast Magic Missile,
- the Constitution to survive the first hit, and
- the Dexterity to run fast enough to avoid being hit a second time.
____________________________________________
https://mail.dworkin.nl/mailman/listinfo/dgd
More information about the DGD
mailing list