【问题标题】:Creating List of Lists in Erlang在 Erlang 中创建列表列表
【发布时间】:2013-05-27 08:41:54
【问题描述】:

例如,我有一个列表 [1,3,5] 和另一个列表 [2,4,6],我如何将这两个列表附加到这样的列表中:[[1,3,5],[2,4,6]]

如果我在末尾添加另一个列表[7,8,9] 看起来像[[1,3,5],[2,4,6],[7,8,9]],我该如何操作该列表?

【问题讨论】:

  • 旁注:在erlang中,如果列表中有L = [A, B],想加C,我们一般在前面加C[C | L],和@一样987654330@。随着列表变大,在列表尾端插入非常昂贵。

标签: list erlang


【解决方案1】:
-module(lol).
-export([new/0, append/2, head/1, tail/1]).

new() -> [].

append(H, []) when is_list(H) -> [H];
append(H, T) when is_list(H) -> [H | T].

head([H | _]) when is_list(H) -> H.
tail([_ | T]) -> T.

然后你可以在 shell 中:

> Herp = lol:append([1,3,4], lol:new()).
[[1,2,3]]
> Derp = lol:append([4,5,6], Herp).
[[4,5,6],[1,2,3]] 
> lol:head(Derp).
[4,5,6]

我把剩下的留给用户练习。

【讨论】:

    【解决方案2】:
    1> [1,2,3 | [1,2,3]].
    [1,2,3,1,2,3]
    2> lists:append([1,2,3], [1,2,3]).
    [1,2,3,1,2,3]
    

    【讨论】:

      【解决方案3】:

      您只需要创建一个包含两个列表的列表。

      A = [1,3,5],
      B = [2,4,6],
      [A, B].
      

      【讨论】:

        【解决方案4】:
        L1 = [1,3,5], 
        L2 = [2,4,6],
        [L1,L2].
        

        【讨论】:

          猜你喜欢
          • 2023-03-09
          • 2012-03-18
          • 2013-09-27
          • 2013-11-18
          • 1970-01-01
          • 2016-07-12
          • 2016-11-22
          • 1970-01-01
          相关资源
          最近更新 更多