在clojure中,我注意到具有逻辑对立的函数,如[[if x if-not] [every? x不是每个]]。 我想知道为什么[not-nil?]不包括在内,是故意还是因为它太琐碎。
对不起,我得问这个。
答案 0 :(得分:3)
自Clojure 1.6以来some?
:
clojure.core/some?
([x])
Returns true if x is not nil, false otherwise.
答案 1 :(得分:1)
在Clojure中,值false和nil都是假的(视为“false”),其他一切都是真实的(被视为“真”)。
举个例子,
(if-not nil
true
false)
评估为true,
(if-not false
true
false)
也评估为true。在大多数情况下,您不应该明确检查nil,而是使用对falsey / truthy值进行操作的表单。
如果您必须只检查nil,那么您可以使用some?
和派生。