letrec

Ähnlich wie let arbeitet letrec. Die Struktur eines wohlgeformten letrec-Ausdrucks ist die gleiche wie für let. Der Unterschied besteht daran, in welcher Umgebung die Terme expr-1 bis expr-n ausgewertet werden.

Während bei let die Auswertung in der Umgebung erfolgt, aus der der let-Ausdruck aufgerufen wurde, erfolgt bei letrec die Auswertung in der Umgebung, in der die neuen lokalen Variablen definiert werden.

Mit letrec ist es deswegen möglich, lokale Variable mit sich gegenseitig oder rekursiv aufrufenden Funktionen zu belegen.