在<暇< href="https://www.surveymonkey.com/r/clojure2024" style="color:#34495e;">2024年 Clojure 调查状态中分享您的想法!

欢迎!请查看关于页面了解有关该工作方式的一些更多信息。

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

可以通过使用{{clojure.lang.IReduce}}
和{{clojure.core.protocols/CollReduce}}来拼凑一些东西,但这并不满意
协议被扩展到{{java.lang.Object}},因此
{{(satisfies? CollReduce x)}}总是返回 true,即使是那些
在递归时会抛出异常的值。

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

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

4 个回答

0
评论由:glts_做出

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

评论由:gshayban做出

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

0
0
by
...