Common Lisp ist der Standard-Lisp-Dialekt aus dem Jahr 1994 (ANSI X3.226-1994) und gilt als die mächtigste Lisp-Variante. Sie vereint funktionale Programmierung mit objektorientierten Konzepten aus CLOS (Common Lisp Object System) und wird bis heute in Forschung, KI und anspruchsvoller Softwareentwicklung eingesetzt.
Erste Schritte
Beliebte Implementierung ist SBCL (Steel Bank Common Lisp), ein quelloffener und sehr performanter Compiler:
sbcl ; interaktive REPL starten
sbcl --script datei.lisp ; Skript ohne REPL ausführen
sbcl --load datei.lisp ; Datei laden
sbcl --eval "(format t "Hallo")" ; Ausdruck direkt auswerten
Paket- und Build-Verwaltung
- Quicklisp ist der Paketmanager der Common-Lisp-Welt:
(ql:quickload "paket")lädt eine Bibliothek und zieht Abhängigkeiten automatisch nach. - ASDF (Another System Definition Facility) beschreibt Projekte als Systeme — analog zu Makefiles oder Cargo.toml — und kompiliert sie in der richtigen Reihenfolge.
- Ein Projekt wird mit
(asdf:load-system "mein-system")geladen;(ql:quickload)nutzt ASDF intern.
Wichtige Sprachkonstrukte
(defun quadrat (x) (* x x)) ; Funktion definieren
(defparameter *name* "Wert") ; globale Variable
(defclass tier () (name)) ; CLOS-Klasse
(defmethod sprich ((t tier)) ...) ; Methode auf Klasse
(loop for i from 1 to 10 collect i) ; Schleife
(mapcar #'quadrat '(1 2 3)) ; Funktion auf Liste mappen
Praxis-Tipps
- Quicklisp einmalig installieren:
(load "quicklisp.lisp"), dann(quicklisp-quickstart:install). - Die REPL mit
,verlassen (SBCL), History mit den Pfeiltasten. - Emacs mit SLIME bietet eine komfortable Common-Lisp-Entwicklungsumgebung.
Verwandte Grundlagen: Scheme-Befehle, Clojure-Befehle, Racket-Befehle, Emacs-Lisp-Befehle.