【发布时间】:2015-08-15 16:32:58
【问题描述】:
从manual of clojure 关于seq 我们读到:;; (seq x) is the recommended idiom for testing if a collection is not empty
(every? seq ["1" [1] '(1) {:1 1} #{1}])
;;=> true。但是一个空集合也会返回自己nil,那么使用seq 来测试集合的空性有什么意义呢?
【问题讨论】:
-
(= () nil) ---> false -
空集合不会返回
nil。您可能正在考虑 nil-punning,它在另一个方向起作用:如果您有nil并且您正在寻找一个序列,它将充当一个空序列。 但反之亦然。在other lisps 中,您的里程会有所不同:空集合与 nil 不同。 Clojure 不等同于 nil 和 '()。