在我关于Clojure/LISP语法的另一个问题中,有人花时间评论指出我没有按照标准LISP的方式编写示例代码。他很友善地重写了代码片段,这对我帮助很大。但这也引发了我的另一个问题。为什么会这样:
(if (= a something)
(if (= b otherthing)
(foo)))
标准的LISP格式是否比这种形式更可取:
(if (= a something)
(if (= b otherthing)
(foo)
)
)
由于我的C++开发背景,我本能地会采用第一种方案来格式化代码。我想知道后一种格式化方式是否有任何好处,或者它只是一种根深蒂固的标准(就像QWERTY键盘一样)。我并不是在争论——只是很难理解为什么第一种形式更可取。第二种形式帮助我更容易地看到代码结构。