为什么 (pr-str Double/POSITIVE_INFINITY) return 有不同的反应?

Why does (pr-str Double/POSITIVE_INFINITY) return different responses?

在某些机器上 运行 (pr-str Double/POSITIVE_INFINITY) returns "Infinity" 这是我所期望的。

但是在某些机器上运行相同(pr-str Double/POSITIVE_INFINITY)returns"Double/POSITIVE_INFINITY"

我们已经消除了 jvm 版本,都是 运行 Clojure 1.6,我们已经尝试消除 .lein/profiles.clj,但我们对导致这种差异的原因一头雾水。

我很确定在 vanilla Clojure 环境中无法从 (pr-str Double/POSITIVE_INFINITY) 到 return "Double/POSITIVE_INFINITY"。只有当你加载了一些库,它对 print-method 进行了一些严重的破坏时,它才能做到这一点。或者,如果您在编写时出错,它也可以这样做,例如,如果您编写 (pr-str 'Double/POSITIVE_INFINITY) 而不是您会得到该结果。

尝试在机器上加载一个绝对简单的 Clojure repl return 通过 java -cp /path/to/clojure.jar 得到一个奇怪的结果,然后将 (pr-str Double/POSITIVE_INFINITY) 粘贴到其中。如果您仍然可以重现此行为,我会感到非常惊讶。