Il progetto pyLisp-NG è un discendente diretto di PyLisp, che ha avuto la sua nascita accidentale a seguito di William Annis 'il desiderio di costruire una sintassi CLIP-come per un sistema esperto semplice destinato al tool di monitoraggio. & Nbsp; Come frutto di interessi Lisp sul gruppo notizie Python, William ha rilasciato il software e ha annunciato che al gruppo.
Diversi anni dopo, i progetti Evolver e txEvolver bisogno di una implementazione del linguaggio di programmazione funzionale in Python, come ispezionare AST di Python era troppo di una seccatura. L'autore ha voluto distribuire, elaborare e gestire algoritmi evolutivi / programmi su più server remoti intrecciati, e manipolare le permutazioni di programmi parziali era molto più facile da integrare con Twisted se i programmi potevano essere valutati e introspected facilmente con Python.
pyLisp-NG eredita charaateristics idiosincratiche di PyLisp. Ad esempio, i booleani sono true e false e non segue la convenzione che tutto ciò che non è falso è vero (comune a molti Lisps). In realtà, tutti booleani in pyLisp-NG sono basati sulla logica fuzzy, in modo da poter fare le cose più ingannevoli. Le macro sono, abbastanza stranamente, oggetti di prima classe in PyLisp che forse nuove a Lisps:
lisp> (setq foo 22)
22
LISP> ((macro (x) `(setq, x (+, x 1))) foo)
23
pyLisp-NG, come il suo predecessore, non ha alcuna intenzione di becomming un vero e proprio, robusta implementazione Lisp. Ogni progresso è disciplinata esclusivamente dall'interesse di contribuire sviluppatori; in questo momento, che è strettamente per l'uso come strumento di programmazione genetica.
Installazione:
pyLisp-NG è setuptools-friendly; è possibile installarlo con il seguente:
& Nbsp; $ easy_install pyLisp-NG
È inoltre possibile ottenere il codice sorgente completo di Launchpad:
& Nbsp; $ bzr lp: pylisp-ng
L'ultima opzione molto incoraggiato per gli utenti interessati, come il repository contiene file aggiuntivi che non sono inclusi nei tarball DISTRIBUZIONE (come il test runner e utils test).
Utilizzo:
Per utilizzare il interpretter da un checkout completo, procedere come segue:
& Nbsp; $ cd
Se avete installato con easy_install, e la directory di script Python si trova nel percorso, tutto quello che dovrete fare è questo:
& Nbsp; $ pylisp-ng
A questo punto, sarete in grado di entrare espressioni Lisp:
lisp> ((lambda (x) (* x x)) 2)
4
lisp>
È possibile utilizzare il codice s-espressione da Python:
>>> Da pylispng importazione Lisp
>>> L = lisp.SExpression ('((lambda (x) (* xx) 2))')
>>> Str (l)
'((Lambda (x) (* x x)) 2)'
>>> L.eval ()
4
Costruire un'espressione un simbolo alla volta o aggiungendo blocchi alla volta:
>>> L = lisp.SExpression ()
>>> L.append ('+')
>>> l.append ('3')
>>> l.append ('5')
>>> L.append ('(* 3 3)')
>>> Str (l)
'(+ 3 5 (* 3 3))'
È possibile esaminare le varie proprietà del s-espressione:
>>> L.eval ()
17
>>> L.getDepth ()
2
>>> Len (l)
4
>>> L.getSize ()
2
Caratteristiche .
- Un piccolo dialetto Lisp, facile da integrare in altri progetti Python
- Include un interprete Lisp interattivo.
- introspezione Expression specificamente progettato per l'uso in programmazione genetica.
Cosa c'è di nuovo in questa versione:.
- Aggiunto codice introspezione che è utile per la programmazione genetica
- Un paio di piccole correzioni di bug e un codice di pulizia.
Requisiti
- Python
I commenti non trovato