0:15:00aethyou can't represent [1, 2, 3] as merely (1 2 3) if you map false to nil
0:15:09masinterit's a beauty mark, not a blemish (From David Moon)
0:16:11aethit gets even trickier if you want to represent {"foo" : 42} as (:foo 42) because now you have nil that could be {}, [], false, or null (but please don't let it be null)
0:18:53masinterwell, data interchange is only one part of software
0:19:08masinterso having NIL = () is really convenient
0:19:38masinter(OR A B C) => the first non-NIL ofAA B C
0:20:17masinterand all variables initialized to NIL
2:25:53jcowanGuile has (), #f, and #nil so that it can handle both the Elisp/CL system and the Scheme system. Specifically, #nil and #f are both false, and #nil and () are both empty lists.
2:26:52jcowanSo you shouldn't make inquiries like (eq x nil), instead you should use (not x) or (null x).