3 ms·
No language with completely separate booleans has ever had a fun club. (Scheme isn't that language, because everything that is not #f is true.) List processin
by kazinator 2y ago
No language with completely separate booleans has ever had a fun club.
(Scheme isn't that language, because everything that is not #f is true.)
List processing is cumbersome in Scheme because the empty list is't false, and because car and cdr cannot be applied to (). (Which, stupidly, isn't even self-evaluating; you have to use '()).
The empty list is special because once upon a time lisp emphasized list processing more. Complex list processing is still important in metaprogramming, and representations of flexible dynamic data sets.
You're not working with lists, it utterly doesn't matter that nil also has a role as the empty list. Just like you don't care that your physician also plays saxophone in a jazz band; he's not doing it during your appointment.