Как установить *readtable* на пустое значение в common-lisp?

Стандартный common-lisp определяет много макросов читателя, таких как ( а также ) для группировки, ' за quote, " для цитаты строки, | для котировки символов, # для отправки макроса и т. д. Теперь я хочу отключить их все и использовать свои собственные, и я должен позвонить set-macro-character один за другим, чтобы отключить их все, а затем определить свои собственные.

Я обнаружил, что есть один способ восстановить все макросы чтения до стандартных, вызвав (setf *readtable* (copy-readtable nil)), но есть ли способ установить их пустыми (т. е. все символы обрабатываются как обычные буквы и цифры)?

1 ответ

Решение

Я не думаю, что есть выход. Ожидается, что вы просто вносите дополнительные изменения в читатель Lisp, не пытаясь заменить его оптом. Он не предназначен для такого использования, потому что вы не можете определить все как макрос - большинство составляющих символов связано со встроенным поведением, которое не может быть определено как макрос чтения.

Другие вопросы по тегам