The Origin of CAR and CDR in Lisp (2005)
I&#x27;ve programmed a lot in various dialects of Lisp, and I like car and cdr. Using names like first and rest might make a language more attractive to new users, but there is something to be said for designing at least some languages for experienced users rather than new ones, and it doesn&#x27;t take much experience (a week?) for the words car and cdr to mean the left and right halves of a cons cell to you.  And once they do, they&#x27;re better than first and rest, because<p>1. They&#x27;re shorter.<p>2. They&#x27;re the same length, which means in practice that a <i>lot</i> of code lines up in a way that&#x27;s easier to read.<p>3. They look similar to one another, which telegraphs that they&#x27;re part of the same set of list access tools. Code that munges lists looks like it munges lists.<p>4. Their meaning is precise: car just takes the first element of a list. Whereas something called first might reasonably be expected to also give you the first element of a vector, or a string.<p>5. When you&#x27;re operating on lists as trees, the names first and rest are actively misleading. The car and cdr are the left and right subtrees, not the first and rest of something.