无法检查值是否可递归(可以被传递给
{{reduce}})。
可以通过使用{{clojure.lang.IReduce}}
和{{clojure.core.protocols/CollReduce}}来拼凑一些东西,但这并不满意
协议被扩展到{{java.lang.Object}},因此
{{(satisfies? CollReduce x)}}总是返回 true,即使是那些
在递归时会抛出异常的值。
在我看来,将{{CollReduce}}扩展到{{Object}}可能存在
问题。
请注意,ClojureScript 有一个工作的{{reduceable?}},所以似乎
没有这个问题。