![]()
![]()
![]()
![]()
![]()
Next: Fonctions récursives Up: Fonction Previous: Introduction   Contents   Index
ItérationScheme définit une structure de contrôle permettant d'écrire facilement des itérations. C'est la forme spéciale do qui s'écrit :
(do ((var1 init1 incrément1) (var2 init2 incrément2) ... (varm initm incrémentm)) (test-fin résultat) expr1 exp2 expn)L'évaluation de cette expression débute par l'évaluation des expressions initi dont le résultat initialise les variables vari.
L'expression test-fin est évaluée :
- Si le résultat est #t, l'expression résultat est évaluée et le résultat retourné. L'expression résultat est facultative. Si elle n'est pas présente, #unspecified est retourné.
- Si le résultat est #f, les expressions expi sont évaluées de la première à la dernière. Puis les expressions incrémenté sont évaluées et le résultat est affecté aux variables correspondantes.
Le processus recommence alors.
Par exemple, la fonction suivante affiche tous les éléments d'un vecteur :
Osm> (define (display-vector v) (let ((len (vector-length v))) (do (; variables (i 0 (+ i 1))) ; test de terminaison ((eq? i len)) ; corps de l'itération (display (vector-ref v i)) (newline)))) => #unspecified Osm> (display-vector #(1 '(2 3) 4)) => 1 (2 3) 4 #uncpecified
© 1993 to 2001 Erian Concept