mapcat是如何工作的?

Mau*_*vez 3 function vector clojure

我对clojure真的很新!`mapcat是如何工作的?

Leo*_*tny 5

mapcat功能仅仅是应用快捷方式concat功能,以结果map函数:

=> (mapcat reverse [[3 2 1 0] [6 5 4] [9 8 7]])
(0 1 2 3 4 5 6 7 8 9)

=> (apply concat (map reverse [[3 2 1 0] [6 5 4] [9 8 7]]))
(0 1 2 3 4 5 6 7 8 9)
Run Code Online (Sandbox Code Playgroud)

参考文献:


通过mapcatvector功能结合使用,您可以交织多个集合:

=> (mapcat vector [1 2 3 4 5 6] [:q :w :e :r :t :y])
(1 :q 2 :w 3 :e 4 :r 5 :t 6 :y)
Run Code Online (Sandbox Code Playgroud)

您将使用list函数而不是使用函数获得相同的结果vector.