¿Cómo puedo escribir la concatenación de listas de Erlang sin usar el módulo de listas?
El libro que estoy leyendo sobre Erlang tiene ejercicios en la parte posterior y uno es recrear las listas: añadir función.
Podría hacer esto simplemente usando el operador ++, pero ¿no es esto realmente lento? Y creo que el objetivo del ejercicio es hacerlo utilizando las operaciones de lista que escribo.
Hasta ahora, el único enfoque en el que podría pensar es hacer algo como:
concat([], _, Results)->
Results;
concat(_, [], Results)->
Results;
concat([Ah|At],B,Results) ->
concat(At,B,[Ah|Results]).
Pero sé que esto es incorrecto ...
¿Alguna sugerencia sobre cómo hacer esto?
EDITAR: Para aclarar la pregunta, aquí hay un ejemplo de entrada y salida:
Entrada: [[1,2,3], [], [4,5], [6]] Salida: [1,2,3,4,5,6]
Después de trabajar un tiempo, también se me ocurrió este código:
append([A|[B|[T|[]]]]) ->
append([A++B|T]);
append([H|T]) ->
H++T.
Sin embargo, esto solo funciona cuando la lista es del tamaño 3. ¿Cómo puedo modificar esto para que funcione con una cantidad determinada de listas de tamaño aleatorio?