
The Seasoned Schemer ist die Fortsetzung des Little Schemer und setzt nahtlos an die Themen des ersten Buches an (inklusive Kapitelnummerierung). Selbstverständlich ist das Buch im selben Stil aufgebaut—links die Fragen, rechts die Antworten (anscheinend nennt sich diese Art des Unterrichts Socratic Method).
Hier lernt man, wie man Lambdas mit Hilfe von letrec im lokalen Kontext einen Namen gibt, ziemlich schnell wird dann auch letcc (call-with-current-continuation) erklärt, um sofort aus einer Rekursion zurückzukehren; irgendwie sind Continuations in Lisp viel einfacher zu verstehen als in anderen Sprachen.
Um den Code selber zu schreiben, am besten gleich nachdem man die Frage gelesen hat, kann ich DrScheme empfehlen, ein Editor mit Debugger und Konsole, der automatisch einrückt und Klammerpaare highlighted.


Im Modul Wissensbasierte Systeme habe ich meine Liebe zu Lisp entdeckt. So war es auch nur eine Frage der Zeit, bis ich eines der Standardwerke endlich mal durcharbeite—und es hat sich gelohnt! The Little Schemer besitzt einen sehr speziellen Aufbau, und zwar ist das gesamte Buch als Dialog zwischen Lehrer und Schüler gehalten:

Ziemlich genial, und wenn man die Schüler-Spalte abdeckt, gibt es einiges zu hirnen.
Um das Buch zu lesen, braucht man keine Vorkenntnisse im Programmieren. Wahrscheinlich ist es sogar einfacher, wenn man nicht schon durch andere Sprachen voreingenommen ist. Allerdings wird es gegen Ende schon ziemlich hart; den applicative-order Y combinator habe ich erst nach einiger Zeit verstanden (Richard Gabriel’s Erklärung ist auch ziemlich gut).
Für alle, die eine etwas andere Einführung in Lisp erhalten möchten, unbedingt empfehlenswert!
Ich beschäftige mich nun seit einiger Zeit mit Lisp, zum einen, da wir es in der Schule im Modul Wissensbasierte Systeme einsetzen und auch um wieder mal eine neue Programmiersprache kennenzulernen (eine pro Jahr ist das Ziel!).
Ich muss gestehen, die Sprache gefällt mir sehr gut, wohl vor allem da sie sich ziemlich von meinen bisherigen bekannten Sprachen unterscheidet. Besonders die simple Syntax der Sprache finde ich beeindruckend, zum Beispiel eine Funktion zur Berechnung der Fakultät:
(defun fac (n)
(cond ((< = n 1) 1)
(t (* n (fac (- n 1))))))
Sieht vielleicht etwas verwirrend aus auf den ersten Blick
Wer selbst einmal Lisp ausprobieren will, dem kann ich diese Seite empfehlen. Ausserdem gibt es ein frei verfügbares Buch und, wer lieber zuhört, der sollte sich diese Videos einmal ansehen. Sie sind zwar schon ziemlich alt (20 Jahre), aber trotzdem sehr interessant.
Viel Spass!