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

欢迎!有关如何使用本网站的信息,请参阅 关于 页面。

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

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

在上面的例子中,每个被评估的 expr 的结果都被传递到下一个谓词。

4 个答案

0 投票

评论由:jafingerhut

Kuldeep,我不能评论这个变化对 Clojure 开发者是否有兴趣,因为我不知道。

我可以说的是,你附上的补丁不是预期的格式。请参阅下面的页面,了解创建预期格式补丁的说明

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

0 投票

评论由:kul

针对 master 重新打好,并按 wiki 中描述生成补丁。

0 投票

评论由:vitoshka

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

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

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

建议的 condp-> 更加易于阅读

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

顺便说一下,condp-> 并非完全与condp相当。因此,可能是更短的pred->p->是更好的名称。

0 投票
...