为什么 (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)
粘贴到其中。如果您仍然可以重现此行为,我会感到非常惊讶。
在某些机器上 运行 (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)
粘贴到其中。如果您仍然可以重现此行为,我会感到非常惊讶。