while

while permet de répéter une action (généralement un effet de bord) tant qu'une condition est vraie. Avant de lire cette page, prenez un peu d'avance et regardez comment les atoms fonctionnent

(def state (atom [1 2 3 4 5]))

(while (not-empty @state)
  (println (last @state))
  (swap! state pop))

Dans cet exemple, nous définissons un atom contenant un vector de 5 éléments. Nous appelons ensuite while avec une condition d'arrêt (qui est ici le fait que le vector soit vide).

A chaque itération, println est appelé avec comme paramètre la dernière valeur du vector, puis celle ci est supprimée en appelant pop sur l'atom.

Une fois le vector contenu dans l'atom vide, while retourne nil.

Précédent - Suivant -

(def state (atom [1 2 3 4 5]))

(while (not-empty @state)
  (println (last @state))
  (swap! state pop))

Powered by mcorbin - Available on Github