gpt4 book ai didi

clojure - Clojure 中 map 处理的向量

转载 作者:行者123 更新时间:2023-12-02 03:36:20 25 4
gpt4 key购买 nike

我还没有找到太多用于对 map 向量进行操作的文档或编码示例。例如,如果我有

(def student-grades 
[{:name "Billy" :test1 74 :test2 93 :test3 89}
{:name "Miguel" :test1 57 :test2 79 :test3 85}
{:name "Sandy" :test1 86 :test2 97 :test3 99}
{:name "Dhruv" :test1 84 :test2 89 :test3 94}])

并且我想为测试平均值添加或关联一个新的键值对,我应该阅读哪些函数?另外,如果有人知道 Clojure 中 map 矢量的任何引用/资源,请分享!非常感谢!

最佳答案

在这种情况下,您想要在集合上映射一个函数(恰好是一个向量);对于集合中的每个元素(恰好是一个映射 - 不幸的命名冲突),您想要生成一个新映射,其中包含旧映射的所有键值对,加上一个新键,比方说 :平均值

例如

(into [] ; optional -- places the answer into another vector
(map ; apply the given function to every element in the collection
(fn [sg] ; the function takes a student-grade
(assoc sg ; and with this student-grade, creates a new mapping
:avg ; with an added key called :avg
(/ (+ (:test1 sg) (:test2 sg) (:test3 sg)) 3.0)))
student-grades ; and the function is applied to your student-grades vector
))

ps 您可以使用 (doc fn-name) 获取相关文档;如果您是 Clojure 新手,我建议您与 irc.freenode.net #clojure 上的友好人员一起出去玩并读一本书 - 目前我最喜欢的是 Programming Clojure ,但我正在屏息以待 O'Reilly 即将出版的 Clojure 书。

关于clojure - Clojure 中 map 处理的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7051643/

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