В Common Lisp есть несколько макросов чтения, таких как '
#'
#P
, но как я могу написать макрос чтения?
Как это:
#T"hello world"
====================>
(gettext "hello world")
В Common Lisp есть несколько макросов чтения, таких как '
#'
#P
, но как я могу написать макрос чтения?
Как это:
#T"hello world"
====================>
(gettext "hello world")
Вы можете использовать set-macro-character и set-dispatch-macro-character, например, после:
(set-dispatch-macro-character #\# #\T
(lambda (s c n)
`(gettext ,(read s t nil t))))
==> T
вы можете использовать установленный синтаксис чтения
(read-from-string "#T\"this is a test\"")
==> (GETTEXT "this is a test")