【发布时间】:2012-12-01 02:26:47
【问题描述】:
情况如下:
CL-USER> [bookid]
#<CLSQL-SYS:SQL-IDENT-ATTRIBUTE BOOKID>
CL-USER> (sql-expression :attribute 'bookid)
#<CLSQL-SYS:SQL-IDENT-ATTRIBUTE BOOKID>
CL-USER> [books.bookid]
#<CLSQL-SYS:SQL-IDENT-ATTRIBUTE BOOKS.BOOKID>
CL-USER> (sql-expression :attribute 'books.bookid)
#<CLSQL-SYS:SQL-IDENT-ATTRIBUTE "books.bookid">
Clsql 的 [] 阅读器宏的行为与 sql-expression 不同。我宁愿在宏中使用 sql-expression,因为 reader 宏在那里可能会表现得很奇怪。我尝试了macroexpand-1,但我猜它没有足够早地捕捉到扩展。如何探索阅读器宏的工作原理?
编辑: 为我的 clsql 问题找到了解决方案:
(sql-expression :table 'books :attribute 'bookid)
我还是想知道读宏的事情。
【问题讨论】:
标签: debugging lisp reader-macro