

Lisp's 'car' doesn't mean 'Contents of the Address Register', as many think - Luyt
http://www.lemis.com/grog/diary-nov2009.php#15

======
jacquesm
<http://www.iwriteiam.nl/HaCAR_CDR.html>

~~~
zachbeane
Indeed. From the coiner of the term:

> Because of an unfortunate temporary lapse of inspiration, we couldn't think
> of any other names for the 2 pointers in a list node than "address" and
> "decrement", so we called the functions CAR for "Contents of Address of
> Register" and CDR for "Contents of Decrement of Register".

~~~
gjm11
For the avoidance of doubt:

1\. That means "address part" and "decrement part"; the IBM 704's registers
were divided into two portions with those names. (Well ... actually into four
portions, two big ones with those names and two little ones.)

2\. This means that Greg is right that CAR and CDR don't refer to an "address
register" and a "decrement register".

3\. But I think Greg is a bit confused about the words "register number"; I
think the idea was that CAR n means "contents of address part of register
number n". It's not that there was some special kind of thing called a
"register number" that had address and decrement parts.

(I've always expanded CAR as "contents of address part of register" and CDR as
"contents of decrement part of register"; it looks to me as if this is
correct.)

