【发布时间】:2017-09-12 22:23:01
【问题描述】:
我写的
Enum.reduce(list, map, fn elem, map ->
key=hd(elem)
Map.put(map, key, List.wrap(Map.get(map, key)) ++ tl(elem))
end)
列表如下所示
['B2', ['B1', 'B2', 'B3']],
['B2', ['A1', 'A2', 'A3']],
想要的结果看起来像
B2 => [['B1', 'B2', 'B3'], ['A1', 'A2', 'A3']]
上面的代码确实产生了这个结果,但感觉特别难看。
我觉得Enum.into 可以用于更好的变体,但我似乎无法同时掌握这些值。我试过了
Enum.into(list, map, fn [k, v] -> {k, List.wrap(Map.get(map, k)) ++ v} end )
但这不会产生任何有用的东西。我相信我的大脑很难摆脱我在过去 25 年编码中使用的命令式思维方式。
【问题讨论】:
-
list和map的示例值有助于理解问题。 -
添加了一个例子。
标签: elixir