
EN: rebol.com -
rebol.org -
rebol.net -
FR: Rebol Documentation Project -
forum RebelBB -
rebol-france.org -
forum codeur -
Evalue un bloc pour chaque valeur dans une série.
foreach word data body
word - Mot ou bloc de mots à initialiser à chaque itération de la boucle (type: get-word word! block!)
data - La série à parcourir (type: series!)
body - Le bloc à évaluer chaque fois.(type: block!)
Pour chaque valeur dans une série, telle qu’un bloc ou une chaîne de caractères, cette fonction évaluera un bloc utilisant une variable qui contient cette valeur.
Par example, la série suivante est un bloc de noms de villes. Pour chaque nom dans ce bloc la fonction PRINT sera evaluée. La variable CITY contient le nom de la ville à chaque itération.
cities: ["Eureka" "Ukiah" "Santa Rosa" "Mendocino"] foreach city cities [print city] Eureka Ukiah Santa Rosa Mendocino
Cela marche aussi pour les chaînes de caractères. Chaque caractère de la chaîne de caractère sera imprimé comme ci-dessous.
chars: "abcdef" foreach char chars [print char] a b c d e f
Le second argument peut aussi être un bloc de mots pour obtenir plusieurs valeurs de ce bloc en même temps :
months: ["March" 31 "April" 30 "May" 31 "June" 30] foreach [name days] months [print [name "has" days "days"]] March has 31 days April has 30 days May has 31 days June has 30 days
for - Répète un bloc pour un intervalle de valeurs.
forall - Evalue un bloc pour chaque valeur de la série.
forskip - Evalue un bloc pour des valeurs périodique d’un série.