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

欢迎!请查看 关于页面 了解更多关于这一点的工作方式。

0
Clojure
我在运行代码时从未遇到过这种情况,所以可能是因为我没有理解的原因而不可能发生。另外,鉴于 transducers,我不确定修复 reducers 的问题是否具有任何重要性。这是在测试 Eastwood 检查工具有关 Clojure 命名空间,包括 clojure.core.reducers 时发现的。


(defcurried mapcat
  "应用 f 到 coll 的每个值上并连接 (f val) 的结果
  colls。可折叠的。"
  {:added "1.5"}
  [f coll]
  (folder coll
   (fn [f1]
     (let [f1 (fn
                ([ret v]
                  (let [x (f1 ret v)] (if (reduced? x) (reduced x) x)))
                ([ret k v]
                  (let [x (f1 ret k v)] (if (reduced? x) (reduced x) x))))]
       (rfn [f1 k]
            ([ret k v]
               (reduce f1 ret (f k v))))))))

宏 rfn 的定义展开为可以调用无参数的 (fn ...),但这不是 f1 的定义多重数。

1 答案

0
参考: https://clojure.atlassian.net/browse/CLJ-1612 (由 jafingerhut 报告)
...