5

Common Lisp 中有一些读宏,例如' #' #P,但是我怎样才能写一个读宏呢?

像这样:

#T"hello world"
====================>
(gettext "hello world")
4

1 回答 1

5

您可以使用set-macro-characterset-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")
于 2013-02-26T15:23:05.767 回答