【发布时间】:2021-11-09 03:07:36
【问题描述】:
我想编写一个函数,它只是用新值更新地图中的向量,但可以接受任意数量的 args,但至少一个。
示例如下:
(defn my-update [what item & items]
(update what :desired-key conj item items))
很遗憾,这不起作用。尽管update 确实有一个包含多个值的签名(如[m k f x y]),但my-update 的所有剩余参数将被连接到一个序列中,该序列将作为一个参数传递给conj。
相反,将conj 与apply 包装在匿名函数中确实有效,但看起来并不那么优雅:
(defn my-update [what item & items]
(update what :desired-key #(apply conj % item items))
编写像my-update这样的函数的惯用方式是什么?
【问题讨论】: