Cdr
|
CDR is also the acronym for the Cuban political organisation, Comités de Defensa de la Revolución.
In computer programming, cdr (pronounced cudder) and car are a pair of primitive functions in Lisp and its best known offspring, Scheme.
The functions cdr
and car
are used to refer to the tail (cdr
) and head (car
) of a list:
(cdr '(A B C))
yields(B C)
(car '(A B C))
yieldsA
The names have their origin in the first implementation of Lisp on an IBM 704 computer. On the 704, an atom was represented by a single 36-bit machine word containing a so-called address part and a decrement part. Each of these parts had a length of 15 bits. The address part was used to point to the head of a list and the decrement part was used to address its tail. The functions used to extract either part of a machine word were called car
(Contents of Address of Register) and cdr
(Contents of Decrement of Register).
The 704 assembler macro for cdr
was
LXD JLOC,4 CLA 0,4 PDX 0,4 PXD 0,4
Portions from NILS' LISP PAGES - http://t3x.dyndns.org/LISP/QA/carcdr.html
Nowadays people mostly use first and 'rest when programming Lisp.
References
- Russel, S. (undated, c. late 1950's) Writing and Debugging Programs. MIT Artificial Intelligence Laboratory Memo 6.