Me gustaría agregar un contador en este bucle para conocer la fila de cada elemento de la lista. ¿Tienes una solución simple?bucle foreach con contador
lists:foreach(fun(X) .... end,Y),
Me gustaría agregar un contador en este bucle para conocer la fila de cada elemento de la lista. ¿Tienes una solución simple?bucle foreach con contador
lists:foreach(fun(X) .... end,Y),
Use listas: foldl o escribir su propia función:
lists:foldl(fun(E,Cnt) -> ..., Cnt+1 end, 0, Y),
Sí Muy bien. De hecho, no hay diferencia conceptual entre foreach y foldl. – Bertaud
Si desea rodar su propia, esto parecen funcionar como se requiere:
foreach_index(F, [H|T]) ->
foreach_index(F, [H|T], 0).
foreach_index(F, [H|T], N) ->
F(H, N),
foreach_index(F, T, N + 1);
foreach_index(F, [], N) when is_function(F, 2) -> ok.
La función F
se invocará con dos parámetros: la entrada individual de la lista y su índice.
Es un poco mejor decir su objetivo en lugar de lo que cree que le ayudará a lograr su objetivo. Hay diferentes respuestas dependiendo de lo que realmente está tratando de hacer. – Dustin
Y = ["abc", "def", "ghi"], listas: foreach (fun (X) io: write ("string ~ w: ~ s, [N, X]) end, Y), – Bertaud