Listen sind der Brot-und-Butter Container in Lisp und allen seinen Dialekten (LISP = LISt Processing). Miteinander verkettete Cons-Zellen verweisen auf die eigentlichen Listeninhalte. Mit den Funktionen car und cdr kann auf die Elemente von cons-Zellen zugegriffen werden. Im Falle von Listen sind dies das erste Element der Liste (car), sowie die Restliste ohne dieses Erste Element (cdr). Die Funktion cons mit zwei Argumenten erzeugt eine cons-Zelle mit den beiden Argumenten als car und cdr. Ist der cdr selbst eine „echte“ Liste, vielleicht die Leere Liste (), so ist das Ergebnis auch wieder eine „echte“ Liste (proper list).
In Scheme gibt es neben Zahlen, Symbolen, Prozeduren, Paaren (=cons-zellen mit definiertem car und cdr) und der leeren Liste einen weiteren Datentyp, der Wahrheitswerte (wahr oder falsch, #t oder #f) enthalten kann, der Typ boolean.
Prädikate sidn Funktionen, die einen solchen Wahrheitswert zurück liefern. Es ist eine (nicht vorgeschriebene) Konvention, die Namen der Prädikate mit einem? Abzuschliessen.
Hier ist Code, der die Listenfunktionen und den Gebrauch von Prädikaten darstellt: 01-lists.scm