请分享您的想法,参加2024年Clojure调查!2024 State of Clojure Survey!

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

0
在引入 cond-> 和 cond->> 宏后,在核心库中添加 condp-> 和 condp->> 宏是有意义的。

  (condp-> {}
    (complement :a) (assoc :a 1)
    :a (assoc :b 2)) ;=> {:b 2, :a 1}

在上面的示例中,每个表达式评估的结果被传递到下一个谓词。

4 个答案

0

由:jafingerhut 评论

Kuldeep,我无法评论这项变更是否对Clojure开发者感兴趣,因为我不知道。

我可以说的是您附加的补丁不是预期的格式。有关创建预期格式的补丁的说明,请参阅以下页面

http://dev.clojure.org/display/community/Developing Patches

0

由:kul 评论

针对 master 进行重构,并根据 wiki 中的说明生成补丁。

0

由:vitosha 评论

这对我来说是一个非常常见的模式。

这是处理此类状态相关条件的一种方式

(-> x (as-> y (if (:foo y) (assoc y :boo 0) y)) ...)

提出的 condp-> 更加易于阅读

(-> x (condp-> :foo (assoc :boo 0)) ...)

顺便提一下,condp-> 并不是完全等同的 condp。所以,可能更短的 pred->p-> 作为这个名字会更好。

0
...