[70] boolean = #t | #f
The standard boolean objects for true and false are written as #t and #f. What really matters, though, are the objects that the conditional expressions (if, cond, and, or) treat as true or false. The phrase “a true value” (or sometimes just “true”) means any object treated as true by the conditional expressions, and the phrase “a false value” (or “false”) means any object treated as false by the conditional expressions.
Of all the standard values, only #f counts as false in conditional expressions. Except for #f, all standard values, including #t, pairs, the empty list, symbols, numbers, strings, and procedures, count as true.
NOTE 11: Programmers accustomed to other dialects of Lisp should be aware that the expression language distinguishes both #f and the empty list from the symbol nil.
Boolean constants evaluate to themselves, so they don't need to be quoted in expressions.
EXAMPLE 25
#t ==> #t #f ==> #f '#f ==> #f
(not obj)
not returns #t if obj is false, and returns #f otherwise.
EXAMPLE 26
(not #t) ==> #f (not 3) ==> #f (not (list 3)) ==> #f (not #f) ==> #t (not '()) ==> #f (not (list)) ==> #f (not 'nil) ==> #f
(boolean? obj)
boolean? returns #t if obj is either #t or #f and returns #f otherwise.
EXAMPLE 27
(boolean? #f) ==> #t (boolean? 0) ==> #f (boolean? '()) ==> #f