Monday, April 19, 2010

CAR and CDR

Introduced in the Lisp programming language, car (pronounced /ˈkɑr/, just like the English word "car") and cdr (/ˈkʌdər/ or /ˈkʊdər/) are primitive operations upon linked lists composed of cons cells. A cons cell is composed of two pointers; the car operation extracts the first pointer, and the cdr operation extracts the second.

Thus, the expression (car (cons x y)) evaluates to x, and (cdr (cons x y)) evaluates to y.

When cons cells are used to implement singly-linked lists (rather than trees and other more complicated structures), the car operation returns the first element of the list, while cdr returns the rest of the list. For this reason, the operations are sometimes given the names first and rest or head and tail.

0 comments:

Post a Comment