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?

questionAnswers(4)

yourAnswerToTheQuestion