# BOOLEAN VALUES

## BOOLEAN VALUES

There are three types of Boolean Values in MUX: BITS, BOOLEAN, and BOOLEAN-Z. In each case, a Boolean Value is either TRUE or FALSE, and all possible strings are mapped onto one of those two.

- The most comprehensive definition of Boolean Value is denoted simply as BOOLEAN. Newer functions and features use the BOOLEAN definition of a Boolean Value. MUX maps the following to FALSE:

- Numbers (integer and floating-point) with a value of zero.
- The Special floating-point values of NaN, Ind, +Inf, and -Inf.
- Strings with zero-length.
- Any error message of the form "#-N <msg>".

All other strings are understood as TRUE including negative numbers and dbrefs.

- BITS is another form of a Boolean value. An integer can be broken down into BITS. Taken together, the server shows them as an integer, but there are functions which indirectly manipulate individual BITS.

- BOOLEAN-Z defines FALSE as an integer zero. This definition still appears in MUX for softcode compatibility.

Alphabetic strings are FALSE. Everything after the decimal point in a floating-point number is ignored. Dbrefs are not recognized but mapped to FALSE. TRUE is then any non-zero number.

NOTE: T() allows a BOOLEAN value to be used with a BOOLEAN-Z function, and Boolean Values from functions can be interpreted correctly by either BOOLEAN or BOOLEAN-Z definitions.

Examples:

not(foo) --> 0 | not() --> 1 | not(-66) --> 0 |

not(0) --> 1 | not(#-1) --> 1 | not(#12) --> 0 |

t(1) --> 1 | t(#-1) --> 0 | t(-66) --> 1 |