Можно рассматривать document.write () (и .innerHTML) как оценку строки исходного кода. Это может быть очень удобно для многих приложений. Например, если вы получаете HTML-код в виде строки из какого-то источника, это удобно просто «оценить».
В контексте Lisp манипуляции с DOM будут похожи на манипулирование структурой списка, например. создайте список (оранжевый), выполнив:
(cons 'orange '())
И document.write () будет похож на оценку строки, например. создайте список, оценив строку исходного кода следующим образом:
(eval-string "(cons 'orange '())")
Lisp также обладает очень полезной способностью создавать код с использованием манипулирования списком (например, с использованием стиля DOM для создания дерева разбора JS) , Это означает, что вы можете создать структуру списка, используя «стиль DOM», а не «стиль строки», а затем запустить этот код, например. например:
(eval '(cons 'orange '()))
Если вы используете инструменты кодирования, такие как простые живые редакторы, очень удобно иметь возможность быстро оценивать строку, например, используя document.write () или .innerHTML. Lisp идеален в этом смысле, но вы можете делать очень классные вещи также в JS, и многие люди делают это, например http://jsbin.com/