Vorrei aggiungere un contatore in questo ciclo per conoscere la riga di ogni elemento della lista. Hai una soluzione semplice?ciclo foreach con contatore
lists:foreach(fun(X) .... end,Y),
Vorrei aggiungere un contatore in questo ciclo per conoscere la riga di ogni elemento della lista. Hai una soluzione semplice?ciclo foreach con contatore
lists:foreach(fun(X) .... end,Y),
Usare gli elenchi: foldl o scrivere la propria funzione:
lists:foldl(fun(E,Cnt) -> ..., Cnt+1 end, 0, Y),
Sì Molto bene, infatti non c'è alcuna differenza concettualmente tra foreach e foldl. – Bertaud
Se si desidera ripristinare il proprio, questo sembra funzionare come previsto:
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 funzione F
verrà chiamato con due parametri: la singola voce dall'elenco e il suo indice.
È un po 'meglio indicare il tuo obiettivo piuttosto che ciò che pensi ti aiuterà a raggiungere il tuo obiettivo. Ci sono risposte diverse a seconda di ciò che stai effettivamente cercando di fare. – Dustin
Y = ["abc", "def", "ghi"], elenca: foreach (fun (X) io: write ("stringa ~ w: ~ s, [N, X]) fine, Y), – Bertaud