【发布时间】:2009-02-11 03:11:13
【问题描述】:
在 C++ 中我会这样写:
if (a == something && b == anotherthing)
{
foo();
}
我认为 Clojure 等价物是这样的是否正确:
(if (= a something)
(if (= b anotherthing)
(foo)))
或者还有其他方法可以执行我错过的逻辑“和”吗?正如我所说,后一种形式似乎工作正常——我只是想知道是否有一些更简单的方法来执行逻辑与。在 Clojure Google Group 上搜索“boolean”、“logical”和“and”会发现太多结果,没有太多用处。
【问题讨论】:
-
Lisp 代码请使用标准缩进,并且不要将右括号放在自己的行上。我可以编辑吗?
-
@Harleqin 请随时解决此问题。我正在学习 clojure,我想知道已建立的代码格式化习语。
-
好的。请注意,if 语句的子部分是对齐的。这是通常的方式。对于某些结构(主要是当你有一个“主体”时),一个只是将缩进增加两个空格。我不知道 Clojure 是否有特定的样式指南,但您可以尝试从 Common Lisp 推断。
-
gigamonkeys.com/book/syntax-and-semantics.html -- 查看“格式化 Lisp 代码”部分(接近尾声)。一个好的编辑器会帮助你格式化;事实上,当自动格式化不符合您的期望时,您几乎可以看到您做错了什么。
-
@Harlequin--感谢您修复代码并感谢您提供指向格式化文档的指针。