Not
~

Not (~
) is a primitive monadic scalar function that returns the logical negation of a Boolean argument—that is, 0 if the argument is 1 and 1 if it is 0. In some languages, such as J, it is extended so that Not x
is equivalent to 1x
while in others, such as K, it is extended so that Not x
is equivalent to 0=x
.
Contents
Examples
~ 0 1 1 0 1
1 0 0 1 0
Attempting to negate a nonBoolean argument usually results in a DOMAIN ERROR. In some languages it may instead subtract the argument from one.
~ 0 0.5 1
DOMAIN ERROR
~0 0.5 1
∧
Properties
Not is the only Boolean function of a single argument which depends on that argument (it is not constant) and is not trivial (the same as Identity). Not is its own Inverse.
History
A Programming Language negates arrays using an overbar symbol like , matching a convention sometimes used in mathematics. In APL\360 the current symbol ~
was chosen, also due to its use in mathematics. Mathematical usage has arguably diverged from APL in this respect, as the negation of a variable is now more often written when a prefix operator is desired.
The arithmetic extension ~x
1x
was introduced to the array langauge family by J. For arguments in the interval this extension may be seen as a probabilistic interpretation of negation.
Extensions
Extension  Languages 

None  APL\360, APL2, APLX, SHARP APL, Dyalog APL, GNU APL, ngn/apl, dzaima/APL 
1⍵ 
J 
0≠⍵ 
K 
External links
Lessons
Documentation
APL builtins [edit]  

Primitive functions  
Scalar  
Monadic  Conjugate ∙ Not ∙ Roll ∙ Type  
Dyadic  Add ∙ Subtract ∙ Equal to (Xnor) ∙ Not Equal to (Xor)  
NonScalar  
Structural  Shape ∙ Reshape ∙ Depth ∙ Ravel ∙ Reverse ∙ Raze ∙ Mix ∙ Cut (K)  
Selection  Take ∙ Drop ∙ Unique ∙ Identity  
Selector  Interval Index  
Computational  
Primitive operators  Each  
Quad names  
Arrays  Index origin ∙ Migration level  
Functions  
Operators  
Other  Zilde ∙ High minus ∙ Function axis 