【问题标题】:What is the difference between [ ] and ( ) brackets in Racket (lisp programming language)?Racket(lisp 编程语言)中的 [ ] 和 ( ) 括号有什么区别?
【发布时间】:2017-05-16 00:47:37
【问题描述】:

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

【问题讨论】:

    标签: syntax racket brackets convention


    【解决方案1】:

    According to the Racket documentation,没有区别 - 只有约定使用 [] 用于 cond 子句(据我了解,其余部分使用您的判断):

    对 cond 子句使用方括号是一种约定。在 Racket 中,括号和方括号实际上是可以互换的,只要 ( 匹配 ) 和 [ 匹配 ]。在几个关键位置使用方括号使 Racket 代码更具可读性。

    在对 Racket 语言的设计一无所知的情况下,我猜测引入方括号是为了回应许多 Lisp 表达式由于大量相同的括号而难以阅读的抱怨,尤其是在深度嵌套结构的末端。换句话说,它可能用于让您的眼睛轻松地在代码中建立一些参考点,以识别您在任何给定点关闭的括号。

    【讨论】:

    • {} 也是括号的另一个等价物,但鼓励用于特定用例(如预制结构文字)。有关Reader Syntax 的更多信息。
    猜你喜欢
    • 1970-01-01
    • 2012-06-28
    • 2013-07-29
    • 2014-09-30
    • 2011-03-29
    • 2011-02-09
    • 2019-05-02
    • 2013-04-01
    • 2013-07-23
    相关资源
    最近更新 更多