Shelisp ist ein sehr kurzes Programm, das Mechanismen zum Erstellen und Ausführen von Unix-Shell (insbesondere bash) Befehle und Konstrukte von Common Lisp bietet.
Um shelisp laufen, sagen an der Eingabeaufforderung:
lisp -load shelisp.lisp
Dies sollte CMU Common Lisp zu starten und geben Sie die Eingabeaufforderung *. Eine bequemere Form könnte es sein, Emacs zu starten, und geben Sie den Befehl Mx cmulisp, die einen Modus `legen Lisp 'mit cmu beginnen wird; dann sagen:
(Load "shelisp.lisp")
Das Ausrufezeichen (!) Zu entkommen, Shell
Jetzt können Sie sagen (die '*' wird schon durch cmulisp Put):
*! Ls
Und es wird die Kommando-Shell ls (indem Sie eine bash-Instanz und das Bestehen der Befehl dazu.
Natürlich bist du eigentlich in Lisp. Sie können dies ausprobieren:
* (Defun faktoriellen (x) (if (Nullp x) 1 (* x (Fakultät (1- x)))))
FACTORIAL
* (Fakultät 33)
8683317618811886495518194401280000000
Also, wenn Sie geben Sie ``! '' Der Rest der Zeile (bis zum ersten Ende der Zeile, die nicht mit einem `` entgangen ist '') als bash Befehl interpretiert und das Ergebnis wird auf der Standardausgabe ausgegeben.
Versuchen Sie nun:
*! Echo? (+ 2 3) zuzu
5zuzu
Die `? ' ist die "Lisp escape '. Er wird durch eine s-Ausdruck, der zu lesen, ausgeführt und ausgedruckt (mit princ) folgt und das Druckergebnis ersetzt die `? ' und der Ausdruck in der Eingabeaufforderung. Es kann jeder Lisp-Ausdruck sein.
* Echo (+ 2/3 2/11) "
Was ist neu in dieser Pressemitteilung:?
- Ein paar mehr Funktionen hinzugefügt (wget-Test, bash-Ergebnis), und diese Version ist unter der LGPL Lisp neu veröffentlicht.
Kommentare nicht gefunden