Syntax Racket(lisp编程语言)中的[]和()括号有什么区别?

Syntax Racket(lisp编程语言)中的[]和()括号有什么区别?,syntax,racket,brackets,convention,Syntax,Racket,Brackets,Convention,在我看来,从技术上讲,两者都是可互换的,但具有不同的常规含义。,没有区别——对于cond子句,只有使用[和]的惯例(就我所知,其余的则使用你的判断): 在条件条款中使用方括号是一种惯例。在球拍中,括号和方括号实际上是可互换的,只要(与匹配)和[与匹配]。在几个关键位置使用方括号可以使Racket代码更具可读性 在不了解Racket语言设计的情况下,我猜想方括号是为了回应人们的抱怨而引入的,因为许多Lisp表达式由于有大量外观相同的括号而难以阅读,特别是在嵌套结构的末端。换句话说,它可能是用来让你

在我看来,从技术上讲,两者都是可互换的,但具有不同的常规含义。

,没有区别——对于
cond
子句,只有使用
[
]
的惯例(就我所知,其余的则使用你的判断):

在条件条款中使用方括号是一种惯例。在球拍中,括号和方括号实际上是可互换的,只要(与匹配)和[与匹配]。在几个关键位置使用方括号可以使Racket代码更具可读性


在不了解Racket语言设计的情况下,我猜想方括号是为了回应人们的抱怨而引入的,因为许多Lisp表达式由于有大量外观相同的括号而难以阅读,特别是在嵌套结构的末端。换句话说,它可能是用来让你的眼睛很容易地在代码中建立一些参考点,以识别你在任何给定点关闭的括号。

{和
}
也是括号的另一个等价物,但对于特定的用例(如预制结构文字)是鼓励的。更多关于该项目的信息。