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

欢迎!请查看关于页面以了解此网站的更多信息。

0
在引入 cond-> 和 cond->> 宏后 1.5 版本,在核心库中添加 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

根据 wiki 中描述的方法与 master 合并并生成补丁。

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
参考:[https://clojure.atlassian.net/browse/CLJ-1534](https://clojure.atlassian.net/browse/CLJ-1534)(由 kul 报告)
...