gpt4 book ai didi

clojure - Clojure 中的渐进式关联

转载 作者:行者123 更新时间:2023-12-01 07:08:01 24 4
gpt4 key购买 nike

我今天遇到了一个我需要的东西,我想逐步关联 map 中的条目,每个条目都基于前一个(s)的结果。这是我所做的:

(defn -Y [v k f] (assoc v k (f v)))

(defn build-map [a-map]
(-> a-map
(-Y :x #(reduce + (:values %) ) )
(-Y :y #(/ (:x %) 100) )
(-Y :z #(* (:y %) 10000000) )
)
)
(build-map {:values (range 8)})

我欢迎你的想法 a) 这是一件好事吗? b) 有没有我没见过的现有方法? (我不太了解API)

最佳答案

我认为 Ankur 的答案是对您的原始设计的一个很好的改进。

我只是想提一下,并不总是需要把事情复杂化。如果你在同一个函数中计算所有额外的 map 条目,我认为这种简单的方法更具可读性:

(defn build-map [a-map]
(let [x (reduce + (:values a-map))
y (/ x 100)
z (* y 10000000)]
(merge a-map {:x x :y y :z z})))

关于clojure - Clojure 中的渐进式关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8427339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com