para cada uno
La función for-each en Scheme se utiliza para aplicar un procedimiento a cada elemento de una lista (o varias listas). A diferencia de map, que devuelve una nueva lista con los resultados, for-each se utiliza por sus efectos secundarios, como imprimir o actualizar variables.
La forma más simple de for-each se ve así:
(for-each procedure list)- Procedimiento: Una función para aplicar a cada elemento de la lista.
- Lista: La lista cuyos elementos serán procesados.
Ejemplo: imprimir una lista
(define (print-item x)
(lumi-message (number->string x)))
(for-each print-item (list 1 2 3 4))- Aquí, la función
print-itemse aplica a cada elemento de la lista(1 2 3 4). - Esto hace que cada número se imprima secuencialmente.
Salida: 1 2 3 4
Cómo funciona
Itera sobre cada elemento:
- El procedimiento proporcionado se ejecuta para cada elemento de la lista, en orden.
Realiza efectos secundarios:
- Los efectos secundarios comunes incluyen imprimir, registrar o modificar variables externas. A diferencia de
map,for-eachno devuelve una lista nueva.
- Los efectos secundarios comunes incluyen imprimir, registrar o modificar variables externas. A diferencia de
Ejemplo: uso con varias listas
Si se proporcionan varias listas, for-each procesa los elementos correspondientes de cada lista.
(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))- La función
sum-and-printsuma los elementos correspondientes de las dos listas e imprime los resultados.
Salida: 5 7 9
Resumen
- La función
for-eaches útil para realizar efectos secundarios en cada elemento de una lista. - A diferencia de
map,for-eachno produce una nueva lista; se centra únicamente en los efectos secundarios del procedimiento. - Puede manejar múltiples listas simultáneamente, aplicando el procedimiento a los elementos correspondientes.
Al utilizar for-each, puede procesar listas de manera efectiva cuando el objetivo es realizar acciones en lugar de transformar datos.