[[Vorlage(Getestet, Jammy Jellyfish)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(clisp.png, 64, align=left)]] Eine freie Implementierung von [wikipedia:Common Lisp:] ist CLISP. Es ist eine funktionale Programmiersprache und gehört zum [wikipedia:GNU:]-Projekt. Der Name ergibt sich aus den beiden Worten '''Lis'''t '''P'''rocessing. Common Lisp ist dabei ein Dialekt auf Basis von [wikipedia:Lisp:]. Als Alternative ist die [http://sbcl.org SBCL] Implementierung zu nennen, die im Gegensatz zu CLISP noch gepflegt wird. = Installation = clisp kann direkt aus den Quellen installiert werden: [1] {{{#!vorlage Paketinstallation clisp, universe }}} Das Programm kann dann sofort gestartet werden [2]. = Bedienung = clisp-Programme können sowohl über den Interpreter geschrieben werden, als auch direkt ausgeführt werden. == Interpreter == Den Interpreter kann man mit dem Aufruf von {{{#!vorlage Befehl clisp }}} im Terminal gestartet werden. Jeder vollständige Befehl wird dabei direkt ausgeführt. Das Resultat wird dabei unmittelbar angezeigt. [[Bild(clisp-interpreter, 300, align=right)]] == Ausführung == clisp-Anweisungen können ebenfalls in eine Datei geschrieben werden und dann mit dem Befehl {{{#!vorlage Befehl clisp LISPDATEI }}} ausgeführt werden. `LISPDATEI` ist dabei der Dateiname der Datei, die ausgeführt werden soll. Dabei muss beachtet werden, dass im Gegensatz zum Interpreter ausschliesslich Ausgaben über die Standardausgabe erscheinen (also in der Regel den Bildschirm), sofern der `print` Befehl angewandt wurde. = Beispiele = === Funktion zur Berechnung der Fakultät === Der Programmcode ist eine Beispielimplementation der Funktion zur Berechnung der Fakultät. {{{#!code bash (defun fak (n) (if (= n 2) 2 (* n (fak (- n 1))) ) ) }}} Die Funktion kann beispielsweise mit der Zahl 5 aufgerufen werden. Dies geschieht mit dem Befehl: {{{#!code bash (print (fak 5)) }}} = Links = * [sourceforge:clisp: Projektseite] {en} * [http://www.gigamonkeys.com/book/ Open Book: Practical Common Lisp] {en} * [https://lispcookbook.github.io/cl-cookbook/ Common Lisp Cookbook] {en} * [https://www.cliki.net/Lisp%20Videos Cliki, the Common Lisp wiki: videos] {en} * [https://lisp-lang.org/success/ lisp-lang.org: Erfolgsgeschichten] {en} #tag: Programmierung