macros - set-macro-character 的非终止-p 参数有什么作用?

标签 macros common-lisp

Set-macro-character 有一个名为 non-terminating-p 的可选参数。好像是用来表示读完宏字符后是否要读另一个字符,但是reader algorithm似乎忽略了这个论点。设置为 true 还是 false 有区别吗?

最佳答案

如果将 non-terminating-p 设置为 t,则宏字符可以在符号名称中显示为未转义(如符号中的 # foo#baz)。如果您将其保留为 nil 并且读取器在累积符号时遇到宏字符,它将终止符号的收集(如 foo'bar 中的 ' >,读作符号 foo 和列表 (引号栏))。

请参阅阅读器算法中的第 8 步——所讨论的参数将宏字符在被视为非终止宏字符终止宏字符 之间切换。

关于macros - set-macro-character 的非终止-p 参数有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30699851/

相关文章:

macros - Clojure:宏错误。 "No such var"

根据功能是否可用编译不同的代码

lisp - 忽略maphash lambda函数中的参数

lisp - Clozure Common Lisp - file-exists-p 未定义

c++ - 是否有必要在 C++ 中调用继承类的公共(public)部分中的宏

c - _Generic assoc-list 中的函数指针类型是否没有按预期工作?

macros - 如何将文件的内容作为参数包含在宏中?

lisp 中的 json-get 函数

lisp - 在列表中搜索整数 (Lisp)

linux - 尽管有 sudo 权限,但编译 Clozure CL 时出现权限错误