首页 > 解决方案 > 如何将元组列表拆分为列表元组?

问题描述

我被要求通过以下方式将元组列表拆分为具有 2 个列表的元组:

splitter ([{1,2},{3,4},{5,6}]). = {[1,3,5],[2,4,6]}

我尝试编写以下代码:

splitter([]) -> {[],[]};
splitter(L) ->(map (fun ({A, _}) -> A end, L))|(map (fun ({_, B}) -> B end, L)).

它不能编译,我得到的错误是:语法错误之前:'|'

问题出在哪里?:

标签: listspliterlangtuples

解决方案


您缺少外部花括号。另外,替换|by,因为那是用来分隔元组成员的。

splitter([]) -> {[],[]};
splitter(L) -> {(map (fun ({A, _}) -> A end, L)),
                (map (fun ({_, B}) -> B end, L))
               }.

推荐阅读