Si può pensare a document.write () (e .innerHTML) come a valutare una stringa di codice sorgente. Questo può essere molto utile per molte applicazioni. Ad esempio, se si ottiene il codice HTML come stringa da qualche sorgente, è utile semplicemente "valutarlo".
Nel contesto di Lisp, la manipolazione del DOM sarebbe come manipolare una struttura di elenco, ad esempio creare l'elenco (arancione) facendo:
(cons 'orange '())
E document.write () sarebbe come valutare una stringa, ad esempio creare un elenco valutando una stringa di codice sorgente come questa:
(eval-string "(cons 'orange '())")
Lisp ha anche l'utilissima capacità di creare codice usando la manipolazione dell'elenco (come usare lo "stile DOM" per creare un albero di analisi JS). Ciò significa che è possibile creare una struttura di elenco utilizzando lo "stile DOM", anziché lo "stile stringa", quindi eseguire quel codice, ad esempio in questo modo:
(eval '(cons 'orange '()))
Se si implementano strumenti di codifica, come semplici editor live, è molto utile poter valutare rapidamente una stringa, ad esempio utilizzando document.write () o .innerHTML. Lisp è l'ideale in questo senso, ma puoi fare cose molto interessanti anche in JS, e molte persone lo fanno, come http://jsbin.com/