为什么要使用 Clojure conatins?举止如此奇怪?
why Clojure conatins? behave so strangely?
为什么 clojure 第一个输出 true 而第二个输出 false
(def myset [3 5 7 11 13 17 19])
(defn check-n
[n]
(contains? myset n))
(check-n 1)
(check-n 20)
contains?
是检查集合中键的函数。它可以与地图一起使用:
(contains? {:a 1 :b 2} :a)
=> true
(contains? {:a 1 :b 2} :c)
=> false
或者使用 vector- 在这种情况下,它检查 vector 是否包含给定的 index:
(contains? [1 2 3] 0)
=> true
(contains? [1 2 3] 3)
=> false
如果要检查数字的出现,请使用 Java 中的 .contains
:
(.contains [1 2 3] 3)
=> true
或 some
集合用作谓词:
(some #{3} [1 2 3])
=> 3
(some #{4} [1 2 3])
=> nil
为什么 clojure 第一个输出 true 而第二个输出 false
(def myset [3 5 7 11 13 17 19])
(defn check-n
[n]
(contains? myset n))
(check-n 1)
(check-n 20)
contains?
是检查集合中键的函数。它可以与地图一起使用:
(contains? {:a 1 :b 2} :a)
=> true
(contains? {:a 1 :b 2} :c)
=> false
或者使用 vector- 在这种情况下,它检查 vector 是否包含给定的 index:
(contains? [1 2 3] 0)
=> true
(contains? [1 2 3] 3)
=> false
如果要检查数字的出现,请使用 Java 中的 .contains
:
(.contains [1 2 3] 3)
=> true
或 some
集合用作谓词:
(some #{3} [1 2 3])
=> 3
(some #{4} [1 2 3])
=> nil