Not
Jump to navigation
Jump to search
not
is a keyword unary operator that returns the logical negation of its operand. In its simplest usage, not true
is equal to false
, and not false
is equal to true
.
Numeric Operands
In detail, for any numeric operand x
, the result of not x
depends on the absolute value of x
. The full truth table for not
with numeric operands is shown below.
Range of abs(x) 
not x


abs(x) <= 0 
1

0 < abs(x) < 1 
1  x

abs(x) >= 1 
0

This is consistent with MiniScript’s support for fuzzy logic. If interpreted as probability, then if p
is the probability of an event happening, not p
is the probability of that event not happening.
NonNumeric Operands
When used with types other than numbers, not
returns 1 (true
) if the given value is “empty”, and 0 (false
) if the operand is “not empty”, as shown below.
Type of x 
Characteristic of x 
not x


string  empty, i.e. x.len == 0 
1 
string  nonempty, i.e. x.len > 0 
0 
list  empty, i.e. x.len == 0 
1 
list  nonempty, i.e. x.len > 0 
0 
map  empty, i.e. x.len == 0 
1 
map  nonempty, i.e. x.len > 0 
0 
function  any  0 
null  (N/A)  1 