【问题标题】:Clojure: access map using multiple keysClojure:使用多个键访问地图
【发布时间】:2014-08-22 11:38:52
【问题描述】:

我正在尝试使用我所谓的“多个键”来访问我认为是“地图”的内容,以提取多个,甚至可能是相同的一些值。

这是我正在尝试做的事情(尝试了很多变体,都不起作用):

(:a :b :c :b :a {:a "a" :b "b" :c "c"})

这是我想要或期望的回应:

"a" "b" "c" "b" "a"

有人知道怎么做吗?

谢谢。

【问题讨论】:

    标签: map clojure key


    【解决方案1】:

    这行得通吗? => 显示从我的 REPL 返回的内容。

    (map {:a "a" :b "b" :c "c"} [:a :b :c :b :a])
    => ("a" "b" "c" "b" "a")
    

    您也可以将地图用作函数调用,仅供参考。

    如果您想避免将键包装在集合中,您可以执行以下操作:

    (defn map-seq [m & ks]
      (map m ks))
    
    (map-seq {:a "a" :b "b" :c "c"} :a :b :c :b :a)
    => ("a" "b" "c" "b" "a")
    

    【讨论】:

    • ((juxt :a :b :c :b :a) {:a "a" :b "b" :c "c"}) 也可以使用
    • juxt 是正确和正确的答案。它是自我并列的;-)
    猜你喜欢
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多