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

欢迎!请查看关于页面,了解有关此内容的一些更多信息。

0
在1.5版中引入 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%20Patches

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
...