Liste

Mehrere S-Expressions in einer festen Reihenfolge zusammengefasst zu einem strukturierten Datentyp nennt man Liste. Listen werden notiert, in dem ihre Elemente durch Leerzeichen von einander getrennt aufgeführt werden und die Gesamtheit der Elemente durch ein Paar runde Klammern umschlossen wird.

Die Elemente einer Liste müssen nicht alle zum selben Datentyp gehören. Insbesondere ist es möglich, dass Elemente wiederum Listen sind (siehe z.B. Assoziationsliste). So können beliebig komplexe Datenstrukturen geschaffen werden. Die leere Liste kann durch nil oder () dargestellt werden.

Beispiele für Listen:

(dies ist eine liste "mit" 7 Elementen)
((eins 1) (zwei 2) (drei 3))
nil
()


Listen können mit den folgenden Funktionen bearbeitet werden:

append,
car,
cartesian-product,
cdr,
cons,
count-if,
dolist,
eighth,
equal?,
every?,
fifth,
first,
fourth,
last,
list,
list-length,
list?,
map-with,
merge,
ninth,
nth,
nthcdr,
null?,
permute,
pick,
position,
position-if,
quasi-quote,
range,
remove,
remove-if,
rest,
reverse,
second,
second-or-nil,
select-if,
seventh,
single?,
sixth,
some?,
sort,
split,
subst,
subst-if,
tail?,
tenth,
third,
unsplit und
zip-with.


Assoziationslisten, Mengen und Stapel (Queues) sind spezielle Listen, für die es weitere, spezialisierte Funktionen gibt (siehe Assoziationsliste, Menge und Stapel).