自从我开始Clojure以来,我已经多次阅读过这种事情了.
例如,这里:如何将地图转换为序列?
在一些推文中,我不记得确切地说这或多或少说"如果你正在使用扁平,你可能做错了".
我想知道,flatten有什么问题?
我认为这就是他们在你联系的答案中所说的:
so> ((comp flatten seq) {:a [1 2] :b [3 4]})
(:b 3 4 :a 1 2)
so> (apply concat {:a [1 2] :b [3 4]})
(:b [3 4] :a [1 2])
Run Code Online (Sandbox Code Playgroud)
展平将从键和值中删除结构,这可能不是您想要的.在某些用例中,您确实希望删除嵌套序列的结构,并且为此类情况编写了flatten.但是对于地图的解构,您通常希望保持内部序列不变.