Цикл чтения-оценки-печати сначала читает, а затем оценивает
'цитата читается как «символ, имя которого - QUOTE»
5 читается как «число 5»
Таким образом (цитата 5 из списка) оценивается как «создайте список, первым элементом которого является символ, имя которого - QUOTE, а вторым элементом - 5».
Результат этой оценки может быть записан как «(цитата 5)». «5» - это еще один способ сказать это, и принтер при некоторых (вероятно, большинстве) имплантациях lisp предпочтет распечатать более короткую форму вместо более длинной.
Когда вы изучаете этот материал, печатая в репле, вы должны помнить, что
два этапа чтения и оценки различны, но цикл выполняет оба действия:
Попробуйте
* (read-from-string "(list 'quote 5)")
(LIST 'QUOTE 5)
чтобы сделать один шаг за раз, или
* (first (read-from-string "(quote 5)"))
QUOTE
* (second (read-from-string "(quote 5)"))
5
* (read-from-string "(quote 5)")
'5
чтобы убедить себя в том, что "(цитата 5)" и "5" - это одно и то же