3 ms·
NIL is certainly an overly-overloaded concept in Common Lisp. Scheme did a better job by separating the boolean type from the empty list but in practice I don't
by dreamcompiler 5y ago
NIL is certainly an overly-overloaded concept in Common Lisp. Scheme did a better job by separating the boolean type from the empty list but in practice I don't find NIL much of a hindrance in CL.
- jinwoo68 5y agoHuh? In my opinion it’s Scheme’s one million dollar mistake. Common Lisp’s identification of NIL and the empty list makes things very ergonomic in so many cases that I wonder if it’s by design or we were just lucky.
- spfzero 5y agoNIL equating to the empty list is fine. The empty list equating to: didn’t find what you wanted, but here’s an empty list instead? Hope you weren’t looking for an empty list though, then you’d be really confused, sorry. Nah, I’ll take “false” thanks.
- kazinator 5y ago> Nah, I’ll take “false” thanks. false is an object which can be stored in the container, and which you could be looking for. You've just migrated the problem away from empty lists.
- spfzero 5y agoThat's right, then I'd just have a mirror of the original problem. I could store empty lists to represent false, but that's not really any better.
- deleted 5y ago[deleted]