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

欢迎!请参阅关于页面以了解更多有关该功能的信息。

+1
Clojure
无法检查一个值是否可约简(可以被
传递给 {{reduce}})。

可以通过使用 {{clojure.lang.IReduce}} 和 {{clojure.core.protocols/CollReduce}}
来组装一些东西,但这并不令人满意
因为 {{CollReduce}} 协议被扩展到 {{java.lang.Object}},所以
{{(satisfies? CollReduce x)}} 总是返回 true,即使对于在约简时会抛出异常的值
也是如此。

在我看来,将 {{CollReduce}} 扩展到 {{Object}} 可能存在
问题。

请注意,ClojureScript 有一个工作的 {{reduceable?}},因此似乎没有
受到这个问题的影响。

4 个答案

0
_评论由: glts_ 添加

我无法编辑描述,但想补充说,同一个问题也适用于“可折叠”的值和 {{clojure.core.reducers/CollFold}} 协议。无法检查一个值是否可折叠。
0

评论由: gshayban 添加

我想知道相关的用例是什么。

0
0
...