User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cl:functions:not [2019/06/15 02:00]
cl:functions:not [2019/08/17 15:00] (current)
Line 1: Line 1:
 +====== Function NOT ======
 +
 +====Syntax====
 +  * **not** //x// → //boolean//
 +
 +====Arguments and Values====
 +  * //x// - a //​[[CL:​Glossary:​generalized boolean]]// (i.e. any //​[[CL:​Glossary:​object]]//​).
 +  * //boolean// - a //​[[CL:​Glossary:​boolean]]//​.
 +
 +====Description====
 +Returns **[[CL:​Constant Variables:​t]]** if //x// is //​[[CL:​Glossary:​false]]//;​ otherwise, returns **[[CL:​Constant Variables:​nil]]**.
 +
 +====Examples====
 +<​blockquote> ​
 +(not [[CL:​Constant Variables:​nil]]) <​r>​[[CL:​Constant Variables:​t|T]]</​r>​
 +(not '()) <​r>​[[CL:​Constant Variables:​t|T]]</​r>​
 +(not (integerp 'sss)) <​r>​[[CL:​Constant Variables:​t|T]]</​r>​
 +(not (integerp 1)) <​r>​[[CL:​Constant Variables:​nil|NIL]]</​r>​
 +(not 3.7) <​r>​[[CL:​Constant Variables:​nil|NIL]]</​r>​
 +(not '​apple) <​r>​[[CL:​Constant Variables:​nil|NIL]]</​r>​
 +</​blockquote>​
 +
 +====Side Effects====
 +None.
 +
 +====Affected By====
 +None.
 +
 +====Exceptional Situations====
 +None.
 +
 +====See Also====
 +  * **[[CL:​Functions:​null|Function NULL]]**
 +
 +====Notes====
 +**not** is intended to be used to invert the `truth value' of a //​[[CL:​Glossary:​boolean]]//​ (or //​[[CL:​Glossary:​generalized boolean]]//​) whereas **[[CL:​Functions:​null]]** is intended to be used to test for the //​[[CL:​Glossary:​empty list]]//. Operationally,​ **not** and **[[CL:​Functions:​null]]** compute the same result; which to use is a matter of style.
 +
 +\issue{NOT-AND-NULL-RETURN-VALUE:​X3J13-MAR-93}