

?


I think that you meant to test if xs is null, not if the car is null. That would simplify things and also not break on the empty (cursed) list


Maybe I could write a research paper where I show that interchanging first & second of pairs doesn’t matter. :eyes:

And I could prove it using denotational semantics by just copy-pasting the proof for regular pairs.


This is a lisp I just published. It’s similar to Scheme but differs in that the equality operator (=) works with any datum and lists when compared with nil. Equality of anything else is undefined. It also differs when evaluating if statements. Anything that’s not true is false. The opposite of Scheme.

Datum and data (lists) are copied by value. Scheme only copies datum by value and data by reference. This is how the evaluator for the articles work but, it’s not the correct behavior this lisp.