Wenn ich etwas Zeit finde, um mir LISP anzuschauen, dann benutze ich standardmäßig EMACS mit SLIME (Superior Lisp Interaction Mode for Emacs). Ein entsprechendes Plugin für Eclipse habe ich da noch nicht gefunden. Zwar snd einige der Tastenkürzel von EMACS gewöhnungsbedürftig (in Eclipse ist es zum Teil auch nicht besser, wenn vier Tasten gleichzeitig gerdrückt werden wollen (z.B.: Shift-Alt-X-A um ein Applet zu starten)), aber es gibt dennoch so ein paar nette Features. Der Klassiker ist die Textvervollständigung. Dieses ist aber nicht das einzige, was mir so gut gefällt.
Es war der SLIME Inspector, der es mir angetan hatte:
Archive for the 'Common Lisp' Category
Nachdem ich den aktuellen CRE 84 Podcast zum Thema LISP gehört hatte, dachte ich mir: Probier doch mal das SBCL aus, dass ist ja als sehr flott beschrieben worden unter den freiverfügbaren Common LISP Implementationen. Bisher verwende ich CLISP. Entpacken, Verzeichnis aufmachen und das Shell-Script starten. So einfach sollte es gehen, nur machte mir die Hardware einen Strich durch die Rechnung. (Alan (Computer) hat zu wenig RAM)
Stattdessen erscheint dieser Text in Emacs:
mmap: Nicht genügend Hauptspeicher verfügbar
ensure_space: failed to validate 536870912 bytes at 0×09000000
(hint: Try “ulimit -a”; maybe you should increase memory limits.)Process inferior-lisp exited abnormally with code 1
Dann bleibe ich eben bei CLISP. Damit lässt sich auch (für den Anfang) gut programmieren.
Eigentlich habe ich heute den ganzen Tag nur diesem Moment entgegen gesehnt. Übers Wochenende habe ich mich ein wenig in die Lektüre Pracatical Common Lisp vertieft und dabei drängten sich mir eine ganz große Frage auf:
Ich weiß über Closures an sich nur soviel, dass viele sich diese in der jeweilgen Programmiersprache wünschen, die diese ja offensichtlich nicht unterstützt. ![]()
Da ich leider noch kein erfahrener “Lisper” bin, wusste ich mit dem Begriff schlicht und ergreifend nichts anzufangen. Zum Glück ist unser Lehrbeauftragter ein begeisterter Lisp-Fan. (Von ihm habe ich ja auch diesen Buchtipp, Practical Common Lisp, bekommen.)
Hier muss ich an merken, dass er sehr erfreut gewirkt hatte, als ich vor knapp 2 Wochen gesagt hatte, dass ich Interesse hätte, Lisp zu lernen.
Und heute, nach der Vorlesung machte ich auch davon Gebrauch:
…zu besagten Closures eben. Er darauf.:
So wie ich ihn dann verstanden habe, soll man damit Funktionen überdecken können – für alle, die Fachwörter lieben: Shadowing – auch wenn diese sich in einem völlig anderen Package befinden sprich, sie befinden sich in einer anderen Übersetzungseinheit).
Bisher hab ich aber auch noch nicht wirklich die tollsten Dinge in Lisp programmiert; damit wird es wohl noch etwas daueren, bis ich den ganzen, neuen Input zum Thema Common Lisp richtig verstanden und (ver-/be-)arbeitet habe.
Und der beste Spruch zum Schluss:
“Irgendwann sieht man die Klammern nicht mehr.”
Ich komme manchmal ganz schön durcheinander, wenn ich mich in Common Lisp versuche. Ich habe mich gerade einmal durch das Kapitel functions von Practical Common Lisp gewälzt, und daraufhin schön brav meine ersten mehr oder weniger nützlichen Funktionen geschrieben.
Und das sieht dann in etwa so aus (hier: Berechnung der Fibonaccizahlen):
(defun fib (n)
(if (< n 2)
(return-from fib n)
(return-from fib (+ (fib (- n 1)) (fib (- n 2))))))
Äh, die wievielte Klammer war das jetzt?
![]()
Dann hilft mir meist nur noch zählen. Sollte was nicht stimmen, wird sich der Lisp-Interpreter eh beschweren. Oh, Mann.






Kommentare