gpt4 book ai didi

clojure - 在 clojure 上更改 map 上的值的正确方法

转载 作者:行者123 更新时间:2023-12-02 18:10:43 30 4
gpt4 key购买 nike

好吧,我是 clojure 新手,这应该很容易,但我一生都找不到答案

假设我有这张 map

(def mymap {:a 10 :b 15})

现在我想将 :a 的值更改为 5。我不知道如何正确执行此操作

我知道 updateassoc 可以进行更改,但它们都接收一个函数作为最后一个参数,该函数适用于该值。我不想这样,我不想运行任何函数,我只想简单地将 :a 设置为 5。

我想我可以传递一个匿名函数,它只返回 5 并忽略 arg,但这是正确的方法吗?我觉得不太好看

(更新 mymap :a (fn [arg] 5))

最佳答案

assoc不将函数作为最后一个参数;除非您想要将函数与映射中的键关联起来。 (assoc mymap :a 5) 做你想要的。

我要补充一点,update,它确实采用一个函数,当与constantly结合使用时也可以在这里使用,或者只是另一个函数(尽管没有理由在 assoc 上使用它们):

; constantly returns a function that throws away any arguments given to it,
; and "constantly" returns the given value
(update mymap :a (constantly 5))

; Basically the same as above
(update mymap :a (fn [_] 5))

关于clojure - 在 clojure 上更改 map 上的值的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55032898/

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