为什么:
(filter f xs)
,导致错误,如下所示:
NullPointerException clojure.core / filter / fn
答案 0 :(得分:1)
filter
不接受nil作为其第一个(函数)参数。
IMO,因为当您查看filter
实施时,不会检查f
是否为函数。出于性能原因,我希望这样做。例如。由于性能(https://github.com/clojure/clojure/blob/master/src/clj/clojure/string.clj#L19),string
模块也无法检查nil
的给定字符串。