Je me demandais, quelle est la méthode la plus efficace pour faire une boucle principale se répétant jusqu'à la fin du programme (en gros là où en impératif on aurait un while(continuer) { ... }).
Genre j'ai une fonction qui doit être répétée :
Il y a bien 'forever loop', mais là pas moyen d'arrêter le programme sauf en envoyant une exception (beurk).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 loop :: IO () loop = do drawSomething window x drawSomething window y handleEvents window updateWindow window etc.
On peut aussi imaginer que loop est de type IO Bool (True si on continue, False si on arrête de répéter), ou bien IO (Maybe a) (Just x si on contiue et Nothing si on arrête) et dans ce cas on peut faire une récursion maison pour répéter la fonction en testant sa valeur de retour, mais vu que ce qui je cherche à faire est super commun je trouverai ça bizarre si il n'y a rien de prévu en Haskell pour faire ça et que je me retrouve obligé de faire une récursion.
Partager