2024 Clojure状态调查!中分享您的想法。

欢迎!请参阅关于页面以了解更多关于其工作的信息。

0
Clojure

看起来min-key和max-key的行为不正确(遵循Java以及IEEE浮点数规范)

(apply max-key last [[:a 10000] [:b (/ 0. 0)] [:c 0]]) [:c 0]

不确定如何传播,但肯定不能默默进行处理。选项

  1. (链接::b NaN)(生成NaN的第一个条目)
  2. NaN(这改变了预期的类型)
  3. 算术异常操作中至少有一个NaN操作数。

如果这是按照min/max修复(http://dev.clojure.org/jira/browse/CLJ-868),则可能会产生选项1。

6个答案

0

评论者:nicholasantonov

此实现与http://dev.clojure.org/jira/browse/CLJ-868文中的CLJ 868解决方案类似的传播NaN行为

0

评论者:alexdillinger

修复应该有测试...

0

评论者:nicholasantonov

最新补丁添加了对带有和没有NaN结果的min-key和max-key的测试,因为没有之前的测试。

0

评论者:alexdillinger

这与CLJ-99重叠,CLJ-99已经被预筛选。我希望基于这个补丁所要求的所有更改在这个票据上。为了构建这个,应用CLJ-99补丁,然后分支,进行您所需的更改,然后创建一个相对于clj-99分支的补丁。抱歉给您造成不便 - 通常补丁在冲突的这一级别不会相互冲突。

0

评论者:nicholasantonov

最新补丁以相同的方式修复了min和max键,但基于CLJ-99,只针对每个条目评估函数一次。

0
参考:[https://clojure.atlassian.net/browse/CLJ-1911](https://clojure.atlassian.net/browse/CLJ-1911)(由reborg报告)
...