;Best viewed in DrScheme ... No... ONLY ;-).
(define (displaynl x) (display x)(newline))
+; Zeile 1
(define var1 +); Zeile 2
(lambda (x) (* x x)); Zeile 3
(define (quad x)(* x x)); Zeile 4
(define var2 (lambda (x) (* x x))); Zeile 5
(let ((a 1) (b -2)) (+ 3 (if (< a b) a b))); Zeile 6
(let ((a 1) (b -2)) (( if (> b 0) + -) a b)); Zeile 7
var1; Zeile 8
(var1 4 5); Zeile 9
((lambda (x)(* x x)) 10); Zeile 10
(quad 10); Zeile 11
(var2 10); Zeile 12
(displaynl "Zeile 1: Es wird die angezeigt, dass + eine Prozedur ist.")
(displaynl "Zeile 2: Es wird der Variable \"var1\" + zugewiesen, also eine Prozedur und die angezeigt (der Pfad zur .scm-Datei).")
(displaynl "Zeile 3: Die lambda-Prozedur ist hier ziemlich nutzlos, weil sie ohne Parameter ausgefhrt wird.")
(displaynl "Zeile 4: Es wird die variable \"quad\" initialisiert, die den Parameter x mit sich selber multipliziert.")
(displaynl "Zeile 5: Die hier initilisierte Prozedur \"var2\" tut das gleiche wie \"quad\", nur ist es eine Prozedur (lambda).")
(displaynl "Zeile 6: Es wird der Variable \"a\" der Wert \"1\" und \"b\" der Wert \"-2\" zugewiesen, und dann zu 3 die Werte von \"a\" und \"b\" addiert, da die Bedingung fr diese Operation (a > b) zutrifft.")
(displaynl "Zeile 7: Es wird der Variable \"a\" der Wert \"1\" und \"b\" der Wert \"-2\" zugewiesen, und dann ueberprueft ob b groesser als 0 ist. Wenn es stimmen wrde, dann wrde die Rechenoperation a + b ausgefhrt, weil es nciht stimmt, wird a - b ausgefhrt und ausgegeben.")
(displaynl "Zeile 8:Es wird der Inhalt von var1 augegeben, also die Plus-prozedur.")
(displaynl "Zeile 9: Es wir die Prozedur var1 mit den Parametern 4 und 5 ausgefhrt, also 4 + 5.")
(displaynl "Zeile 10: Es wird die Prozedur x * x mit 10 als Parameter ausgefhrt.")
(displaynl "Zeile 11: Es wird quad mit 10 als Parameter ausgefhrt (10 * 10).")
(displaynl "Zeile 12: Es wird var1 mit 10 als Parameter ausgefhrt (10 * 10).")