emacs-lisp-style-guide
emacs-lisp-style-guide copied to clipboard
Prefer `nil` for empty lists over `()` or `'()`
There are essentially 5 ways to "initialize" a list
(let (results)
(--each ... (push x results)))
(let ((results))
(--each ... (push x results)))
(let ((results nil))
(--each ... (push x results)))
(let ((results ()))
(--each ... (push x results)))
(let ((results '()))
(--each ... (push x results)))
Personally I use 2 and 3 and prefer 2 if there are multiple bindings at the same time
(let ((x 1)
(y 2)
(results)
(z 3))
(--each ... (push x results)))
Having it wrapped in the parens sort of signifies to me it's a list. A nil there wouldn't hurt though, I'm just lazy.
I was hoping there would be some way to distinguish () and nil for example for the purpose of analysis but they both appear as nil to the reader, so meh.
I generally go with option 2, as then it's easy to add more non-empty elements to the bindings, but I agree that 3 & 4 definitely read better. I'm fine with suggesting the use of nil, although I don't think we should discourage ().