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/