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