gpt4 book ai didi

clojure - 是否有一个标准函数接受一个字典和一个键列表并返回相应的值列表?

转载 作者:行者123 更新时间:2023-12-02 11:34:12 28 4
gpt4 key购买 nike

我正在寻找类似于 select-keys 的内容:

(desired-fn {:a 1, :b 2, :c 3, :d 4} [:a :d])
;= [1 4]

;; N.B. the order of the keys in the argument seq is preserved
(= (desired-fn (array-map :a 1, :b 2, :c 3, :d 4)
[:b :c])
(desired-fn (array-map :d 4, :c 3, :a 1, :b 2)
[:b :c]))
;= true

实现起来并不是特别困难,尽管我还没有尝试想出一个好名字:

(defn select-values-corresponding-to-keys [m ks]
(for [k ks]
(get m k)))

我是否不知道能够准确满足此需求的标准函数?如果没有,其他语言(例如 Python、Ruby、Haskell)是否有此函数的名称?

最佳答案

map 是对其键进行操作的函数:

({:a 1, :b 2} :a)
;=> 1

(map {:a 1, :b 2, :c 3, :d 4} [:a :d])
;=> (1 4)

(= (map (array-map :a 1, :b 2, :c 3, :d 4)
[:b :c])
(map (array-map :d 4, :c 3, :a 1, :b 2)
[:b :c]))
;=> true

如果您希望结果为向量,只需使用 vecinto [] ...,或将 map 替换为 mapv.

关于clojure - 是否有一个标准函数接受一个字典和一个键列表并返回相应的值列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16802381/

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