Common Lisp Hash-Dot #. Читатель Макро

Недавно я наткнулся на так называемый макрос для чтения хеш-точек Common Lisp и мне интересно, как он работает и что он делает. Использование поисковых систем не очень помогло, поэтому любые примеры, объяснения и особенно варианты использования приветствуются.

1 ответ

Решение

В спецификации это называется точка Sharpsign. Это делает оценку времени чтения. Вы можете найти гиперспецификацию Common Lisp для этого. У меня его нет, но я верю, что в Emacs со слизью можно найти документацию для макросов читателей. Делать C-c C-d C-h чтобы увидеть, есть ли команда для этого.

#.foo читает как угодно (eval foo) возвращается. Таким образом:

CL-USER> '((+ 1 2) #.(+ 1 2))
((+ 1 2) 3)
CL-USER> (read)
#.(* 3 4)
12
Другие вопросы по тегам