Abstrasy
2.0 (beta)

Piste: • while
 

while

L'opérateur while permet de construire une structure de boucle «tant que… faire…».


La forme générale de cette structure est très simple:

(while {<vérité>} {<faire>})


Ainsi, tant que la condition décrite par le résultat de l'expression <vérité> est «vraie», l'expression paresseuse <faire» est évaluée.

Si l'expression retourne un résultat, la boucle s'arrête et l'évaluation se poursuit à l'expression suivante. Sinon, la <vérité> est à nouveau testée pour savoir si elle est «vraie». Si c'est le cas, l'expression paresseuse est de nouveau évaluée, sinon la boucle s'arrête.

(define '$x 3)
(while{$x} {
  (display "$x = " $x)
  (set! $x (- $x 1))
})

⇒

$x = 3
$x = 2
$x = 1

Ready.



Il existe aussi une autre forme autorisée:

(while $ref {<faire>})


Cette forme ne prend pas une expression paresseuse comme condition mais une référence. Cette forme permet donc de tester la valeur de vérité référencée (équivalente à «vrai» ou «faux» par compositionnalité) avant chaque itération.

Notre précédent exemple peut donc s'écrire également comme ceci:

(define '$x 3)
(while $x {
  (display "$x = " $x)
  (set! $x (- $x 1))
})

⇒

$x = 3
$x = 2
$x = 1

Ready.


On notera que l'évaluation de cette forme est légèrement plus rapide car l'interpréteur ne doit pas créer un contexte d'évaluation pour l'expression de condition.

refs/lang/opindex/while.txt · Dernière modification: 2014/07/14 18:30 (modification externe)

Retour
Table des matières

 

     
Licence Creative Commons
   Get abstrasy at SourceForge.net. Fast, secure and Free Open Source software downloads