通用Lisp特殊快捷方式字符

通用Lisp特殊快捷方式字符,lisp,common-lisp,syntactic-sugar,Lisp,Common Lisp,Syntactic Sugar,在CommonLisp中,显然有一些特殊字符充当某些表单的快捷方式'x表示(引号x)#'f表示(函数f)。我原以为只有这些(以及backtick),但后来我了解了#(),这显然是一个向量,就在今天,有人提到了。,这显然与计算时间有关 尽管我可能会尝试,但我似乎找不到一个完整的列表,列出哪些前缀符号意味着什么,它们是做什么的?这是留给实现来决定的吗,还是有人可以告诉我标准中全面列出这些快捷方式的地方?您正在寻找的是 您可以使用 和 事实上,我就是这样实现的。中的HyperSpec枚举了“最初在一致

在CommonLisp中,显然有一些特殊字符充当某些表单的快捷方式<代码>'x表示
(引号x)
#'f
表示
(函数f)
。我原以为只有这些(以及backtick),但后来我了解了
#()
,这显然是一个向量,就在今天,有人提到了
,这显然与计算时间有关


尽管我可能会尝试,但我似乎找不到一个完整的列表,列出哪些前缀符号意味着什么,它们是做什么的?这是留给实现来决定的吗,还是有人可以告诉我标准中全面列出这些快捷方式的地方?

您正在寻找的是

您可以使用 和

事实上,我就是这样实现的。

中的HyperSpec枚举了“最初在一致性实现中定义的宏字符”。您可以定义自己的using,它处理像
这样没有“前缀”的类型,以及处理以分派字符为前缀的类型(通常是
#


除了HyperSpec之外,您还可以从Paul Graham的关于Lisp的文章中找到有用的信息。它以实现
开始,即扩展为
(引号…
)的宏字符。对的回答也很有帮助,因为设置宏字符有一些用法

标准中只有一个全面的列表,但您可以随时定义新的宏字符。这对我来说是新闻。我需要打什么电话来定义我自己的名字?我正在整理一个答案,但首先看一看Lisp上的章节。你也可能会发现这很有帮助。旁注:#。在阅读时间工作。