【发布时间】:2010-10-07 04:26:24
【问题描述】:
一位花时间在my other question 上评论 Clojure/LISP 语法的人指出,我没有以标准 LISP 方式编写示例代码。所以他好心重写了sn-p代码,这帮了大忙。但它在我的脑海中提出了另一个问题。为什么会这样:
(if (= a something)
(if (= b otherthing)
(foo)))
这是标准的 LISP 格式比这种形式更可取:
(if (= a something)
(if (= b otherthing)
(foo)
)
)
由于我的 C++ 开发背景,这是我天真地格式化此代码的方式。我想知道后一种格式是否有任何好处,或者它只是一个根深蒂固的标准(如 QWERTY 键盘)。我并不是要争论——我很难理解为什么第一种形式更可取。第二种形式帮助我更容易地查看代码结构。
【问题讨论】:
-
而不是
(if (= a something) (if (= b otherthing) (foo)))
您可能需要考虑(when (and (= a something) (= b otherthing)) (foo))
标签: lisp clojure code-formatting