相关疑难解决方法(0)

如何在不使用lists模块的情况下编写Erlang的列表连接?

我正在读的关于Erlang的书在它的后面有练习,一个是重新创建列表:追加功能.

我可以简单地使用++运算符来做这个,但这不是很慢吗?我认为练习的重点是使用我编写的列表操作来完成.

到目前为止,我能想到的唯一方法是执行以下操作:

concat([], _, Results)->
  Results;
concat(_, [], Results)->
  Results;
concat([Ah|At],B,Results) ->
  concat(At,B,[Ah|Results]).
Run Code Online (Sandbox Code Playgroud)

但我知道这是不正确的......

关于如何做到这一点的任何建议?

编辑:澄清问题,这是一个示例输入和输出:

输入:[[1,2,3],[],[4,5],[6]]输出:[1,2,3,4,5,6]

工作一段时间后,我想出了这个代码:

append([A|[B|[T|[]]]]) ->
  append([A++B|T]);
append([H|T]) ->
  H++T.
Run Code Online (Sandbox Code Playgroud)

但是,这仅适用于列表大小为3的情况.如何修改此值以使其适用于任意给定数量的随机大小的列表?

erlang function list append

10
推荐指数
2
解决办法
8781
查看次数

标签 统计

append ×1

erlang ×1

function ×1

list ×1