我正在读的关于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的情况.如何修改此值以使其适用于任意给定数量的随机大小的列表?