Clojure 2024 年调查 中分享您的想法!

欢迎!请查看 关于 页面以了解更多关于该功能的信息。

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