在我看来,从技术上讲,两者可以互换,但具有不同的惯例含义。
在我看来,从技术上讲,两者可以互换,但具有不同的惯例含义。
根据Racket文档,实际上没有区别——只是约定使用[
和]
来表示cond
子句(对于其余部分则需自行判断,就我所知):
在Racket中,使用方括号表示cond子句只是一种约定。实际上,括号和方括号是可以互换的,只要(与)匹配,[与]匹配即可。在一些关键位置使用方括号可以使Racket代码更易读。
虽然我不了解Racket语言的设计,但我猜测方括号的出现是为了解决许多Lisp表达式由于大量相同的括号而难以阅读的问题,特别是在深度嵌套结构的末尾。换句话说,它可能用于允许您的眼睛在代码中轻松建立一些参考点,以确定在任何给定点处要关闭哪个括号。
{
和}
也可以作为括号的另一种等效形式,但建议在特定情况下使用(例如预制结构体字面值)。有关读取器语法的更多信息。 - Winny