欢迎!有关如何工作的更多信息,请参阅关于页面。
min-key和max-key的行为似乎不正确(遵循Java和IEEE浮点数约定)
(apply max-key last [[:a 10000] [:b (/ 0. 0)] [:c 0]]) [:c 0]
不知道这应该如何传播,但绝对不是静默传播。选择
如果像min/max一样修复(http://dev.clojure.org/jira/browse/CLJ-868)它可能会得到选项1。
由nicholasantonov发表评论
这以与(http://dev.clojure.org/jira/browse/CLJ-868)相同的方式实现了传染性NaN的第一个解决方案
由alexmiller发表评论
修复应该包含测试...
这个最新的补丁增加了对 min-key 和 max-key 进行测试,以检查在存在 NaN 结果以及不存在 NaN 结果两种情况下的行为,因为之前并没有这样的测试。
这会与 CLJ-99 相冲突,该问题已经被预审过。我希望在这个补丁要求的任何更改都基于那个条目之上。为此,请先应用 CLJ-99 补丁,然后分支,进行更改,然后相对于 clj-99 分支创建补丁。很抱歉这比较麻烦 - 通常补丁在冲突的这一层面并不常见。
最新的补丁以与 min 和 max key 相同的方式修复问题,但基于 CLJ-99,仅对每个项评估一次函数。