2016-01-07 223 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