
EN: rebol.com -
rebol.org -
rebol.net -
FR: Rebol Documentation Project -
forum RebelBB -
rebol-france.org -
forum codeur -
Evalue un bloc pour chaque valeur de la série fournie en argument.
forall word body
word - Variable définissant chaque élément dans la série et changée en conséquence (type: word!)
body - Bloc à évaluer à chaque fois (type: block!)
La fonction FORALL se déplace dans la série d’une valeur à la fois.
L’argument WORD est une variable qui prend la valeur de chaque élèment de la série successivement. Avant l’évaluation, l’argument WORD doit être positionné sur la position de démararge désirée dans la série (normalement ‘head mais n’importe quelle position est valide). Après chaque évaluation du bloc, la variable sera déplacée à la position suivante dans la série.
cities: ["Eureka" "Ukiah" "Santa Rosa" "Mendocino"] forall cities [print first cities] Eureka Ukiah Santa Rosa Mendocino
chars: "abcdef" forall chars [print first chars] a b c d e f
Important : l’argument WORD est modifié et devient le résultat de l’application de la fonction. WORD est positionné sur la fin de la série dans la plupart des cas. Il est possible de réinitialiser WORD au début de la série avec la fonction HEAD.
Par exemple:
chars: "abcdef" forall chars [print first chars] probe chars a b c d e f ""
Maintenant, réinitialiser la variable “chars” au début de la chaîne:
chars: head chars probe chars "abcdef"
La fonction FORALL peut être vue comme un raccourci pour :
[ while [not tail? series] [ (your code) series: next series ] ]
for - Répète un bloc pour un ensemble de valeurs.
foreach - Evalue un bloc pour chaque valeur dans la série.
forskip - Evalue un bloc pour des valeurs périodiques dans la série.