Lambda Ausdrücke und Rekursion, if und cond
Bisher haben wir unhinterfragt Prozeduren als eigenen Datentyp in Scheme kennengelernt. DIes ist im Prinzip auch richtig, jedoch steckt ein allgemeineres Konzept dahinter, nämlich Lambda-Ausdrücke. Statt einfach nur zu sagen, lambda-Ausdrücke seien anonyme Prozeduren kommen wir weiter, wenn wir sagen, Prozeduren seien lambda Ausdrücke, die an Variablen gebunden sein können (und dann eben nicht mehr anonym sind).
Ein weiteres, mächtiges Konzept ist das der Rekursion. Damit bezeichnet man die Tatsache, das Prozeduren sich selbst (direkt oder indirekt) wieder als Hilfsprozeduren aufrufen. So wie Listen unser Brot-und Butter Container sind, so ist die Rekursion unsere wichtigste Standardmethode bei
der Formulierung von Algorithmen.
Rekursion muss jedoch unter bestimmten bedingungen abbrechen können. Um solche bedingten Auswertungen überhaupt formulieren zu können müssen wir zwei neue Makros einführen, die sich  auch nicht an die Standard-Scheme Auswertungsregeln halten können: if und cond.
 
Hier ist etwas scheme zum Thema:03-lambda+recur.scm