Read–eval–print loop: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Uso: rimosso stile errato preformatted
ValterVBot (discussione | contributi)
m Implementazione: tag source deprecati, replaced: <source lang= → <syntaxhighlight lang=, </source> → </syntaxhighlight>
Riga 27:
=== Implementazione ===
Per implementare un Lisp REPL, è necessario solo implementare queste tre funzioni e una funzione a [[loop infinito]]. (Naturalmente, l'implementazione di eval sarà complicata, poiché deve anche implementare tutte le funzioni primitive come [[Car e cdr|car]] e + e operatori speciali come ''if''.) Ciò fatto, un REPL di base non è altro che una singola riga di codice:
<sourcesyntaxhighlight lang="lisp">(loop (print (eval (read))))</sourcesyntaxhighlight>Una possibile implementazione di eval è come un [[interprete ricorsivo]] che agisce sull'[[Abstract syntax tree]] creato da ''read''. Un'altra possibilità è compilare l'albero di sintassi in [[codice macchina]] ed eseguirlo.
 
=== Funzionalità ===