Shelisp yra labai trumpas programa, kuri suteikia mechanizmus komponavimo ir veikia Unix apvalkalą (ypač bash) komandas ir stato iš bendrosios Lisp.
Norėdami paleisti shelisp, tarkim, į komandų eilutę:
LISP -load shelisp.lisp
Tai turėtų pradėti CMU Bendra LISP ir pateikti eilutę, *. Patogesnė forma galėtų būti pradėti Emacs ir išduoti komandų Mx cmulisp kad pradės "prastesnės LISP" režimą su CMU; tada sako:
(Apkrova "shelisp.lisp)
Bang (!) Pabėgti į lukštais
Dabar jūs galite pasakyti ("*" yra jau įdėti ten cmulisp):
*! Ls
Ir tai bus įvykdyti shell ls komandą (paleisdami bash instancija ir pakeleivingi komandą į jį.
Žinoma, jūs esate iš tikrųjų Lisp. Galite pabandyti tai:
* (Defun czynnikowego (x) (jei (zerop x) 1 (* x (czynnikowego (1- x)))))
Faktorialas
* (Faktorinė 33)
8683317618811886495518194401280000000
Taigi, jei įvesite ``! "Linijos dalis (iki pirmojo pabaigoje linija, kuri yra ne pabėgo su` `'') yra interpretuojamas kaip bash komanda ir rezultatas yra atspausdintas ant standartinio išėjimo.
Dabar pabandykite:
*! Aido? (+ 2 3) zuzu
5zuzu
Į "?" yra "LISP pabėgti". Jis po to -ų saviraiškos yra perskaitoma, atliekami ir spausdintos (su Princ) ir spausdinami rezultatas pakeičia "?" ir į shell komandą išraiška. Tai gali būti bet Lisp išraiška.
* Aidas (+ 2/3 2/11)
Kas naujo , šioje laidoje:?
- kelias daugiau funkcijų buvo pridėta (wget testas, bash-rezultatas), ir ši versija yra pakartotinai išduotą pagal Lisp LGPL.
Komentarai nerastas