do*

Une variation de la boucle do est la boucle do*, qui s'apparente à let* dans le sens où les variables d'itération sont affectées séquentiellement. Voici le résultat de l'exemple précédent avec une boucle do* :

* (do* ((i 0 (1+ i))
        (j 0 i))
       ((> i 5))
    (format t "i: ~a  j: ~a~%" i j))
i: 0  j: 0
i: 1  j: 1
i: 2  j: 2
i: 3  j: 3
i: 4  j: 4
i: 5  j: 5
NIL
*

Ici, i est d'abord mise à jour avec (1+ i), puis j est mise à jour (avec la valeur de i).



Irene DURAND
2011-10-14