Pode-se pensar em document.write () (e .innerHTML) como avaliar uma sequência de código-fonte. Isso pode ser muito útil para muitos aplicativos. Por exemplo, se você obtiver o código HTML como uma sequência de alguma fonte, é útil apenas "avaliá-lo".
No contexto do Lisp, a manipulação do DOM seria como manipular uma estrutura de lista, por exemplo, crie a lista (laranja) fazendo:
(cons 'orange '())
E document.write () seria como avaliar uma string, por exemplo, crie uma lista avaliando uma string de código-fonte como esta:
(eval-string "(cons 'orange '())")
O Lisp também tem a capacidade muito útil de criar código usando manipulação de lista (como usar o "estilo DOM" para criar uma árvore de análise JS). Isso significa que você pode criar uma estrutura de lista usando o "estilo DOM", em vez do "estilo string", e depois executar esse código, por exemplo:
(eval '(cons 'orange '()))
Se você implementar ferramentas de codificação, como editores simples ao vivo, é muito útil ter a capacidade de avaliar rapidamente uma string, por exemplo, usando document.write () ou .innerHTML. Lisp é ideal nesse sentido, mas você pode fazer coisas muito legais também em JS, e muitas pessoas estão fazendo isso, como http://jsbin.com/