Como posso escrever a lista de Erlang concatenar sem usar o módulo de listas?
O livro que estou lendo sobre Erlang tem exercícios na parte de trás e um deles é recriar as listas: acrescentar função.
Eu poderia fazer isso simplesmente usando o operador ++, mas isso não é realmente lento? E acho que o objetivo do exercício é fazê-lo usando as operações de lista que escrevo.
Até agora, a única abordagem que eu conseguia pensar era fazer algo como:
concat([], _, Results)->
Results;
concat(_, [], Results)->
Results;
concat([Ah|At],B,Results) ->
concat(At,B,[Ah|Results]).
Mas eu sei que isso é incorreto ...
Alguma sugestão sobre como fazer isso?
EDIT: Para esclarecer a questão, aqui está um exemplo de entrada e saída:
Entrada: [[1,2,3], [], [4,5], [6]] Resultado: [1,2,3,4,5,6]
Depois de trabalhar um tempo, eu também criei este código:
append([A|[B|[T|[]]]]) ->
append([A++B|T]);
append([H|T]) ->
H++T.
No entanto, isso só funciona para quando a lista é tamanho 3. Como posso modificar isso para que ele funcione para qualquer quantidade de listas de tamanho aleatório?