Das Programm beinhaltet die beiden Funktionen writeln und bkpt, die von vielen meiner Programme verwendet werden. Sie werden jeweils als library dazugeladen.
;;; <breakpoint.scm> ; Kann auch ohne Parameter aufgerufen werden und bietet die ; Möglichkeit, eine Funktion zu unterbrechen und ggf. Ausdrücke ; auszuwerten und anzuzeigen. ;;; vvvvv bkpt vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv (define bkpt (lambda Parameter (let loop ((l Parameter)) (cond ((null? l) (newline)) (else (display (car l)) (display #/space) (loop (cdr l))))) (writeln "weiter mitund ") (writeln "Abbruch mit F[e]hler und ") (let loop ((ch (read-line))) (cond ((equal? ch "")(loop (read-line))) ((char=? (char-upcase (string-ref ch 0)) #/space) (void)) ((char=? (char-upcase (string-ref ch 0)) #/E) (error "Abbruch mit Fehlermeldung")) (else (loop (read-line))))))) ;;; vvvvv writeln vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; Kann auch ohne Parameter aufgerufen werden und bietet die ; Möglichkeit, eine Ausgabe von einer beliebigen Zahl von Parametern ; durchzuführen. (define writeln (lambda L (cond ((null? L) (newline)) (else (display (car L)) (display #/space) (apply writeln (cdr L)))))) ;;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^