bbatsov / emacs-lisp-style-guide

A community-driven Emacs Lisp style guide
1.08k stars 53 forks source link

Prefer `nil` for empty lists over `()` or `'()` #50

Open Fuco1 opened 6 years ago

Fuco1 commented 6 years ago

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.

bbatsov commented 6 years ago

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 ().