通用Lisp特殊快捷方式字符
在CommonLisp中,显然有一些特殊字符充当某些表单的快捷方式<代码>'x表示通用Lisp特殊快捷方式字符,lisp,common-lisp,syntactic-sugar,Lisp,Common Lisp,Syntactic Sugar,在CommonLisp中,显然有一些特殊字符充当某些表单的快捷方式'x表示(引号x)#'f表示(函数f)。我原以为只有这些(以及backtick),但后来我了解了#(),这显然是一个向量,就在今天,有人提到了。,这显然与计算时间有关 尽管我可能会尝试,但我似乎找不到一个完整的列表,列出哪些前缀符号意味着什么,它们是做什么的?这是留给实现来决定的吗,还是有人可以告诉我标准中全面列出这些快捷方式的地方?您正在寻找的是 您可以使用 和 事实上,我就是这样实现的。中的HyperSpec枚举了“最初在一致
(引号x)
#'f
表示(函数f)
。我原以为只有这些(以及backtick),但后来我了解了#()
,这显然是一个向量,就在今天,有人提到了。
,这显然与计算时间有关
尽管我可能会尝试,但我似乎找不到一个完整的列表,列出哪些前缀符号意味着什么,它们是做什么的?这是留给实现来决定的吗,还是有人可以告诉我标准中全面列出这些快捷方式的地方?您正在寻找的是 您可以使用 和 事实上,我就是这样实现的。中的HyperSpec枚举了“最初在一致性实现中定义的宏字符”。您可以定义自己的using,它处理像
“
这样没有“前缀”的类型,以及处理以分派字符为前缀的类型(通常是#
)
除了HyperSpec之外,您还可以从Paul Graham的关于Lisp的文章中找到有用的信息。它以实现
”
开始,即扩展为(引号…
)的宏字符。对的回答也很有帮助,因为设置宏字符有一些用法标准中只有一个全面的列表,但您可以随时定义新的宏字符。这对我来说是新闻。我需要打什么电话来定义我自己的名字?我正在整理一个答案,但首先看一看Lisp上的章节。你也可能会发现这很有帮助。旁注:#。在阅读时间工作。