Shelisp er en svært kort program som gir mekanismer for å komponere og kjører Unix shell (spesielt bash) kommandoer og konstruksjoner fra Common Lisp.
Å kjøre shelisp, si ved ledeteksten:
Lisp -load shelisp.lisp
Dette bør starte CMU Common Lisp og gi rask, *. En mer praktisk form kan være å starte emacs, og gi kommandoen Mx cmulisp som vil starte en `mindreverdig lisp" -modus med CMU; deretter, sier:
(Load "shelisp.lisp")
Den bang (!) Flykte til Shell
Nå kan du si (den '*' er allerede satt der av cmulisp):
*! Ls
Og det vil utføre shell ls kommandoen (ved å kjøre et bash forekomst og passerer kommandoen til det.
Selvfølgelig, er du faktisk i Lisp. Du kan prøve dette:
* (Defun fakultetet (x) (if (zerop x) 1 (* x (fakultet (1- x)))))
Faktoriell
* (Fakultet 33)
8683317618811886495518194401280000000
Så, hvis du går inn ``! '' Resten av linjen (inntil den første enden av linjen som ikke er rømt med en `` '') blir tolket som et bash-kommandoen og resultatet er trykt på standard ut.
Nå prøver:
*! Ekko? (+ 2 3) zuzu
5zuzu
De `? ' er "lespe flykte". Den etterfølges av en s-uttrykk som blir lest, gjennomføres og skrives ut (med princ) og den trykte resultatet erstatter den `? ' og uttrykket i skallet kommandoen. Det kan være en hvilken som helst Lisp uttrykk.
* Ekko (+ 2/3 2/11) "
Hva er nytt i denne utgaven:?
- Et par! flere funksjoner ble lagt (wget-test, bash-resultat), og denne versjonen er gitt ut under Lisp LGPL.
Kommentarer ikke funnet