for-each
Die Funktion for-each in Scheme wendet eine Prozedur auf jedes Element einer Liste (oder mehrerer Listen) an. Im Gegensatz zu map, das eine neue Liste zurückgibt, dient for-each Nebeneffekten wie Ausgabe oder Variablenänderung.
Die einfachste Form von for-each:
(for-each procedure list)- Prozedur: Funktion pro Element.
- Liste: Zu verarbeitende Liste.
Beispiel: Liste ausgeben
(define (print-item x)
(lumi-message (number->string x)))
(for-each print-item (list 1 2 3 4))print-itemwird auf(1 2 3 4)angewendet.- Jede Zahl wird nacheinander ausgegeben.
Ausgabe: 1 2 3 4
So funktioniert es
- Über jedes Element iterieren: Die Prozedur wird der Reihe nach ausgeführt.
- Nebeneffekte: Drucken, Protokollieren oder externe Variablen ändern — ohne neue Liste.
Mehrere Listen
Mit mehreren Listen verarbeitet for-each entsprechende Elemente paarweise.
(define (sum-and-print x y)
(lumi-message (number->string (+ x y))))
(for-each sum-and-print (list 1 2 3) (list 4 5 6))Ausgabe: 5 7 9
Zusammenfassung
for-eacheignet sich für Nebeneffekte pro Listenelement.- Im Gegensatz zu
mapkeine neue Liste. - Mehrere Listen werden gleichzeitig verarbeitet.
Nutzen Sie for-each, wenn Aktionen wichtiger sind als Datentransformation.