Listenin her elemanının sırasını bilmek için bu döngüde bir sayaç eklemek istiyorum. Basit bir çözümün var mı?foreach döngü sayacı
lists:foreach(fun(X) .... end,Y),
Listenin her elemanının sırasını bilmek için bu döngüde bir sayaç eklemek istiyorum. Basit bir çözümün var mı?foreach döngü sayacı
lists:foreach(fun(X) .... end,Y),
Kullanım listeleri: foldl veya kendi fonksiyon yazmak: Kendi almak isterseniz gerektiği gibi
lists:foldl(fun(E,Cnt) -> ..., Cnt+1 end, 0, Y),
Evet Çok iyi, aslında foreach ve foldl arasında kavramsal olarak bir fark yoktur. – Bertaud
, bu işe görünmektedir:
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.
işlevi F
iki parametre ile çağrılacaktır - listeden ve dizininden bireysel giriş.
Amacınızı elde etmenize yardımcı olacağını düşündüğünüzden ziyade, amacınızı belirtmek biraz daha iyidir. Yapmaya çalıştığınız şeye bağlı olarak farklı cevaplar var. – Dustin
Y = ["abc", "def", "ghi"], listeler: foreach (eğlenceli (X) io: yazma ("string ~ w: ~ s, [N, X]) bitiş, Y), – Bertaud