Orang dapat menganggap document.write () (dan .innerHTML) sebagai mengevaluasi string kode sumber. Ini bisa sangat berguna untuk banyak aplikasi. Misalnya jika Anda mendapatkan kode HTML sebagai string dari beberapa sumber, akan sangat mudah untuk hanya "mengevaluasi" itu.
Dalam konteks Lisp, manipulasi DOM akan seperti memanipulasi struktur daftar, misalnya membuat daftar (oranye) dengan melakukan:
(cons 'orange '())
Dan document.write () akan seperti mengevaluasi string, misalnya membuat daftar dengan mengevaluasi string kode sumber seperti ini:
(eval-string "(cons 'orange '())")
Lisp juga memiliki kemampuan yang sangat berguna untuk membuat kode menggunakan manipulasi daftar (seperti menggunakan "gaya DOM" untuk membuat pohon parse JS). Ini berarti Anda dapat membangun struktur daftar menggunakan "gaya DOM", bukan "gaya string", dan kemudian jalankan kode itu, misalnya seperti ini:
(eval '(cons 'orange '()))
Jika Anda menerapkan alat pengkodean, seperti editor langsung sederhana, sangat berguna untuk memiliki kemampuan untuk mengevaluasi string dengan cepat, misalnya menggunakan document.write () atau .innerHTML. Lisp ideal dalam hal ini, tetapi Anda dapat melakukan hal-hal yang sangat keren juga di JS, dan banyak orang melakukannya, seperti http://jsbin.com/