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