【问题标题】:Erlang How can I merge Two list into tuple listErlang如何将两个列表合并到元组列表中
【发布时间】:2021-11-11 02:58:34
【问题描述】:

在erlang中,我想合并两个列表如下

什么时候, A = [1, 2, 3, 4], B= ["A1", "A2", "A3", A4],

想要的结果 [{1, "A1"}, {2, "A2"}, {3, "A3"}, {4, A4}]

我尝试了以下方法

''' - 模块(测试)。 - 出口([开始/0])。

    start() ->
        Abc = [2,3,1,4],
        Bbc=["f1", "f2", "f3",f4],
        ct:pal("Hello ~n"),
        ct:pal("make_tuple_list ~p~n", [make_tuple_list(Abc,Bbc)]).

    make_tuple_list([H1 | T1], [H2 | T2]) ->
        [_ | _] = [{H1, H2} | make_tuple_list(T1, T2)].

    make_tuple_list([], []) -> [].

''' 但得到如下的系统税错误

test.erl:14: 函数 make_tuple_list/2 已经定义

提前致谢。

【问题讨论】:

    标签: erl


    【解决方案1】:

    尝试关注....

    -module(test).
    -export([start/0]).
    
    start() ->
        Abc = [2,3,1,4],
        Bbc=["f1", "f2", "f3",f4],
        ct:pal("Hello ~n"),
        ct:pal("make_tuple_list ~p~n", [make_tuple_list(Abc,Bbc)]).
    
    make_tuple_list([H1 | T1], [H2 | T2]) ->
        [{H1, H2} | make_tuple_list(T1, T2)];
    
    make_tuple_list([], []) -> [].
    
    

    分割函数子句的分隔符是;. 是函数定义终止符。在上述情况下,make_tuple_list 的两次出现都以. 结尾,这实质上意味着,在第二次出现时,我们正在重新定义一个已经定义的函数,这在 ErLang 中是不允许的。

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 2011-01-25
      • 2012-10-15
      • 1970-01-01
      • 2020-02-19
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多