User Tools


====== 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}