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

欢迎!有关如何工作的更多信息,请参阅关于 页面。

+1
Clojure
检查值是否可约简(是否可以被
传递给 {{reduce}})是不可能的。

可以通过使用{{clojure.lang.IReduce}}和{{clojure.core.protocols/CollReduce}}来试图拼凑一些东西,但这并不令人满意
{{CollReduce}} 协议扩展到{{java.lang.Object}},因此
{{(satisfies? CollReduce x)}}总是返回true,即使对于在约简时将抛出异常的值
来说也是如此。
在我看来,将{{CollReduce}}扩展到{{Object}}可能会有问题。

ClojureScript有一个可用的{{reduceable?}},所以似乎没有
这个问题。

请注意,ClojureScript有一个可用的{{reduceable?}},所以似乎没有
这个问题。

4 个答案

0
_评注由:glts_

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

评注由:gshayban

我想知道周围的使用场景。

0
0
by
...