我最近做了一些调查。由于缺乏Lisp经验,我想验证我发现了什么。这是否正确地描述了Scheme、球拍、Common和Clojure中方括号的行为?
FORMAT控件字符串中,它们在标准语言中没有任何意义。发布于 2021-06-20 19:45:43
我想对普兰来说,你说得对。
在通用Lisp中,标准不是CLtL2,而是ANSI标准,它在所有意图和目的上都与CLHS (例如https://clhs.lisp.se)相同。读取器行为在第2节中定义。在默认情况下,方括号(即标准语法中的方括号)是组成字符,因此可以在符号名中使用它们而不需要特殊转义。例如,[、[]、][、APPLE-][、>][<、[[[等都是可以不用转义的有效符号名。然而,这些字符被显式地保留给程序员在他们自己的可读表中使用。有几个库使用这种方法,例如用于SQL文本的CLSQL。
在Clojure中,方括号表示向量,这是不同于列表的一种单独的集合。代码中文字向量的求值是在代码中构造一个新的求值形式向量。示例:[a 'b (+ a b)]计算为a值的新向量、名为b的符号以及a和b值之和。宏和其他特殊形式通常将向量用于不作为函数调用计算的语法部分。示例:(defn foo [a b c] …) -在函数定义的正文中作为形式参数被绑定的符号向量。(let [a 1 b (+ a forble)] …) - a和b的词法绑定。
https://stackoverflow.com/questions/68051017
复制相似问题