16:36:25pjbJohnMS_WORK: yes, () '() nil and '() evaluate to the same thing. But for the human reader, they have different connotation.
16:36:25pjbYou will avoid to evaluate (), and use it only in non-evaluated places, such as parameter lists (lambda () 'hi), or empty bindings (let () (foo)).
16:36:25pjbYou will use '() when you want to return an empty list. (defun empty-list () '())
16:36:25pjbYou will use nil when you want to return false. (defun false () nil)
16:36:28pjbYou will use 'nil when you want to return specifically the symbol NIL. (defun nil-symbol () 'nil)
16:37:33pjbJohnMS_WORK: you could use different functions to test them: ENDP for empty list, NOT for boolean false, NULL for symbol nil.
16:38:28pjbJohnMS_WORK: and of course, you would use list list* append, etc list operator on '(), and, or, and other boolean operators on nil, and symbol-name, symbol-value, etc, on symbol 'nil.
16:38:55pjbSo you would write (append 1 2 '()) not (append 1 2 nil).
3:14:10marsiathat's a whole lot of rules over nothing pjb