首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有多值键的zipmap

带有多值键的zipmap
EN

Stack Overflow用户
提问于 2013-06-16 23:21:25
回答 1查看 284关注 0票数 2

以下内容:

代码语言:javascript
复制
(zipmap '(:a :b :c :c) '(1  2  3  4))

评估对象:{:c 4, :b 2, :a 1}

我想要得到:

代码语言:javascript
复制
{:c '(3 4) :b '(2) :a '(1)}

而不是。

我应该如何定义我自己的zipmap,它接受两个列表并返回一个具有多个键值的映射?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-17 00:30:00

这个就行了

代码语言:javascript
复制
(defn zippy [l1 l2]
  (apply merge-with concat (map (fn [a b]{a (list b)}) l1 l2)))
        ;;; ⇒ #'user/zippy

(zippy '(:a :b :c :c) '(1  2  3  4))
        ;;; ⇒ {:c (3 4), :b (2), :a (1)}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17134771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档