In Scheme, wie in allen Lisp Dialekten spielen Listen eine zentrale Rolle. Auf der Basis des simplen Grundgedankens, dass man zwei Objekte aneinander binden kann (cons), dann auf beide Teile zugreifen kann (car,cdr), das Ergebnis dieser Bindung wiederum ein cons-fähiges Objekt ist, ermöglicht es, beliebig komplexe Datenstrukturen aufzubauen, ohne mehr als die genannten Mittel dazu einzusetzen. Nimmt man hinzu, dass ein spezielles Objekt das Ende einer Liste markiert ( `() ), sodass man auch unbekannte Listen rekursiv durchwandern kann, so hat man ein simples, aber enorm Leistungsfähiges Konzept zur Modellierung aller möglichen Gegebenheiten.
Bis jetzt haben wir Symbole, Zahlen (exakte und unexakte), Prozeduren und Listen als unterschiedliche Dinge in unserer Scheme-Welt kennengelernt Hinzu kommen noch die Wahrheitswerte (boolean) wahr (#t) und falsch (#f), damit kommen wir erstmal eine recht lange Zeit aus.
Prozeduren, die uns einen Wahrheitswert zurückliefern, und uns somit etwas über andere Objekte mitteilen, nennen wir Prädikate. Qua Konvention enden sie mit einem „?“
Hier ist etwas Quelltext (incl. Aufgaben!)