Function Clojure,思考一些函数

Function Clojure,思考一些函数,function,vector,clojure,read-eval-print-loop,Function,Vector,Clojure,Read Eval Print Loop,我在repl-lein repl和light表旁玩,注意到使用some函数有些奇怪: (def my-vec [5 :test]) (some even? my-vec) ;=> java.lang.IllegalArgumentException: Argument must be an integer: :test ; core.clj:1351 clojure.core/even? ; core.clj:2515 clojure

我在repl-lein repl和light表旁玩,注意到使用some函数有些奇怪:

(def my-vec [5 :test])
(some even? my-vec)     
;=>  java.lang.IllegalArgumentException: Argument must be an integer: :test
;            core.clj:1351 clojure.core/even?
;            core.clj:2515 clojure.core/some

(some odd? my-vec)      ;=> true
(some integer? my-vec)  ;=> true
(some map? my-vec)      ;=> nil

(def my-vec2 [4 :test])
(some even? my-vec2)     ;=> true
(some odd? my-vec2) 
;=> java.lang.IllegalArgumentException: Argument must be an integer: :test
;            core.clj:1351 clojure.core/even?
;            core.clj:1357 clojure.core/odd?
;            core.clj:2515 clojure.core/some

(some integer? my-vec)  ;=> true
(some map? my-vec)      ;=> nil
有些人的文件说:


为什么对于奇数/偶数的整数会出现错误?当它不在向量中时?它不应该返回零吗

有些人会将谓词应用于集合的每个元素,直到它得到一个真实值

(some even? [5 :test])
有些人会尝试

然后

(even? :test) ;=> Exception...
从哪天开始?需要一个整数

试试看

(some (every-pred integer? even?) [5 :test])
;=> nil

(some (every-pred integer? even?) [5 6 :test])
;=> true

有些人会将谓词应用于集合的每个元素,直到它获得truthy值

(some even? [5 :test])
有些人会尝试

然后

(even? :test) ;=> Exception...
从哪天开始?需要一个整数

试试看

(some (every-pred integer? even?) [5 :test])
;=> nil

(some (every-pred integer? even?) [5 6 :test])
;=> true

雾散了。谢谢你的回答!雾散了。谢谢你的回答!