Long-running personal site of Frans Faase, a Dutch programmer writing about Lisp history, file format cracking, esoteric languages and bootstrapping.
HN links it for The Origin of CAR and CDR in Lisp; commenters discuss the IBM 704 origins and admire the decades-long blogging.
If it is any consolation, Steve Russell, who implemented the first Lisp interpreter on the IBM 704 and came up with CAR (Contents of the Address Register) and CDR (Contents of the Decrement Register) wanted to change them to "first" and "rest" after a few months in to teaching and thinking "Hmm, maybe we could have had more direct names here".
See the full email from Steve Russell on the topic on this page https://www.iwriteiam.nl/HaCAR_CDR.html, and here's the relevant quote:
> "After several months and giving a few classes in LISP, we realized that "first" and "rest" were better names, and we (John McCarthy, I and some of the rest of the AI Project) tried to get people to use them instead.
Alas, it was too late! We couldn't make it stick at all. So we have CAR and CDR."
Personally I don't mind them, they're nicely introduced in "A Gentle Introduction to Symbolic Computation" and they stuck easily enough for me.
Always nice to hear of people who have been blogging for a long time. I myself have been blogging (not always very seriously) for more than 29 years. First from a '~/home' directory of the University I was working at, later I moved to my own domain [1]. The first entry is from February 1995, but it also has contents from before that date.
I am still writing HTML (with some JavaScript) using a modified version of Crystal Edit, which has the ability open local files by following HTML links [2]. (So, it act like a kind of HTML source browser.) I am using a C program to check HTML and links [3], which also places all updated files in an upload directory.
[1] https://www.iwriteiam.nl/
[2] https://www.iwriteiam.nl/MySample.html
[3] https://www.iwriteiam.nl/chkhtml_c.txt
The original LISP machine, the IBM 704, had CAR and CDR as primitives. And boy, were they primitive:
> These names are hold-overs from the original implementation of LISP on the IBM 704. That machine had partial-word instructions to reference the address and decrement parts of a machine location. The a of CAR comes from "address", the d of CDR comes from "decrement". the c and r come from "contents of" and "register". Thus CAR could be read "contents of address part of register".
http://www.iwriteiam.nl/HaCAR_CDR.html
I'd say both. But it does matter. It could for example be used in obfuscators. Brainfuck itself has formal proof of being turing complete, so the easiest way today to prove that a language is turing complete is to implement a brainfuck interpreter. Which is just a few lines of code instead of this: http://www.iwriteiam.nl/Ha_bf_Turing.html
I tried writing some of my own verses for this song, but I couldn't think of anything that rhymed with RPLACA and CDADAADR.
Speaking of consing every pair, here's a previous discussion about "The Origin of CAR and CDR in Lisp (2005) (iwriteiam.nl)":
https://news.ycombinator.com/item?id=16008239
http://www.iwriteiam.nl/HaCAR_CDR.html
I noticed that too, but Steve Russell wrote the first LISP interpreter on the IBM 704 in 1959 (http://www.iwriteiam.nl/HaCAR_CDR.html#Steve). The IBM 7094 came out in 1962 (http://en.wikipedia.org/wiki/IBM_7090). So I'm betting that our russell isn't Steve. He's a perfectly good russell nonetheless :)