Uno puede pensar en document.write () (y .innerHTML) como la evaluación de una cadena de código fuente. Esto puede ser muy útil para muchas aplicaciones. Por ejemplo, si obtiene código HTML como una cadena de alguna fuente, es útil simplemente "evaluarlo".
En el contexto de Lisp, la manipulación DOM sería como manipular una estructura de lista, por ejemplo, crear la lista (naranja) haciendo:
(cons 'orange '())
Y document.write () sería como evaluar una cadena, por ejemplo, crear una lista evaluando una cadena de código fuente como esta:
(eval-string "(cons 'orange '())")
Lisp también tiene la capacidad muy útil de crear código usando la manipulación de listas (como usar el "estilo DOM" para crear un árbol de análisis JS). Esto significa que puede crear una estructura de lista utilizando el "estilo DOM", en lugar del "estilo de cadena", y luego ejecutar ese código, por ejemplo, así:
(eval '(cons 'orange '()))
Si implementa herramientas de codificación, como simples editores en vivo, es muy útil tener la capacidad de evaluar rápidamente una cadena, por ejemplo, usando document.write () o .innerHTML. Lisp es ideal en este sentido, pero también puedes hacer cosas muy interesantes en JS, y muchas personas lo están haciendo, como http://jsbin.com/