我是Clojure的新手,并且具有以下简单的功能
(defn find-func
[what seq]
(filter #(.equals what %) seq)
)
Run Code Online (Sandbox Code Playgroud)
我注意到上面的函数明显慢于我用.替换.equals = =
(defn find-func
[what seq]
(filter #(= what %) seq)
)
Run Code Online (Sandbox Code Playgroud)
我在jdk 1.8.0_25,clojure 1.8上从REPL运行时观察到它:
(find-func "10" (map str (range 0 800000)))
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我虽然从另一个stackoverflow回答(堆栈溢出问题)=调用.equals所以不应该有任何性能差异.从那时起就优化了吗?感谢您的任何澄清.