The predicates null and not act identically. Good programming style dictates that you use null when the semantics of the program suggest interest in whether a list is empty, otherwise use not:
>(null nil) T >(not nil) T >(null ()) T >(not ()) ;;preferable to use null T >(null '(a s)) NIL >(not '(a s)) ;;preferable to use null NIL >(not (= 1 (* 1 1))) NIL >(null (= 1 (* 1 1))) ;;preferable to use not NIL
© Colin Allen & Maneesh Dhagat