请在2024 Clojure 状态调查!中分享您的看法。

欢迎!请参阅关于页面以了解更多关于如何使用本站的信息。

0
Clojure
我还没有在运行代码中遇到过这种情况,所以可能由于我没有理解到的某种原因,这是不可能的。同时,也不确定是否需要修复reducers的问题,考虑到transducers。这是在测试Eastwood lint工具对某些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的定义扩展为可以无参数调用f1的(fn ...),这并非f1定义的参数个数。

1 答案

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