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 投票
...