2016-01-07 271 views
2

函数将接受什么将是一个'映射'功能和哈希映射。映射函数将接受MapEntry类型的值。这是因为收集(散列图)如下所示:{k v k v k v},MapEntry是这样的:k v。通过哈希映射映射,需要返回哈希映射

我似乎无法得到要返回的{k v k v k v}。我可以很容易地得到([k v] [k v] [k v])

+0

[flatten](https://clojuredocs.org/clojure.core/flatten)? – m0skit0

+0

这是一个很常见的用例(通过对现有地图中的条目应用一些函数来创建一个新地图),我有点惊讶,clojure.core中没有任何东西,尽管实现它自己很微不足道。有[algo.generic](https://github.com/clojure/algo.generic)中的'clojure.algo.generic.functor/fmap',但只对值(并强制第三方依赖)进行操作。 – Alex

回答

6

我刚刚完成输入问题时就想到了这一点。所有你需要做的是(into {} ([k v] [k v] [k v]))。这将给{k v k v k v}

+0

是的,我相信这是最习惯的方式,因为'map'总是返回一个Seq – SCdF