【发布时间】:2017-05-16 00:47:37
【问题描述】:
在我看来,从技术上讲,两者都是可以互换的,但具有不同的传统含义。
【问题讨论】:
标签: syntax racket brackets convention
在我看来,从技术上讲,两者都是可以互换的,但具有不同的传统含义。
【问题讨论】:
标签: syntax racket brackets convention
According to the Racket documentation,没有区别 - 只有约定使用 [ 和 ] 用于 cond 子句(据我了解,其余部分使用您的判断):
对 cond 子句使用方括号是一种约定。在 Racket 中,括号和方括号实际上是可以互换的,只要 ( 匹配 ) 和 [ 匹配 ]。在几个关键位置使用方括号使 Racket 代码更具可读性。
在对 Racket 语言的设计一无所知的情况下,我猜测引入方括号是为了回应许多 Lisp 表达式由于大量相同的括号而难以阅读的抱怨,尤其是在深度嵌套结构的末端。换句话说,它可能用于让您的眼睛轻松地在代码中建立一些参考点,以识别您在任何给定点关闭的括号。
【讨论】:
{ 和 } 也是括号的另一个等价物,但鼓励用于特定用例(如预制结构文字)。有关Reader Syntax 的更多信息。