Réponse courte: Vous ne le faites pas. En programmation fonctionnelle, vous ne modifiez généralement jamais les variables, ce qui signifie qu'une boucle est impossible. Au lieu de cela, vous pouvez implémenter la même chose en utilisant la récursivité. De même, comme vous n'avez généralement pas d'effets secondaires, les appels de fonction n'ont de sens que s'ils renvoient des données. Donc, la barre (stuff) n'est probablement pas très utile. Il n'a aucun moyen d'affecter le reste de l'application. Dans un style de programmation fonctionnel, votre fonction bar() doit être appelée sur des données différentes à chaque fois, et retourner quelque chose sur lequel le reste de l'application peut agir.
(ML ne permet des effets secondaires dans certains cas, mais de garder les choses simples, nous allons ignorer que pour l'instant)
Qu'est-ce que vous essayez d'atteindre exactement? (Qu'est-ce que vous avez besoin de faire une boucle, que font les fonctions?)
Si vous fournissez un peu plus de détails, nous pouvons vous expliquer plus précisément comment vous devriez écrire le programme, mais tel qu'il est, votre programme ne le fait tout simplement pas. sens dans un style fonctionnel.
1 pour le; indentation! – diapir
@diapir: Bah, je donnerais -1 pour ce placement de point-virgule si je m'en souciais plus à ce sujet que sur le contenu. – Svante
@Svante: Je ne sais pas ce qui s'est passé dans ma tête, je lui donnerais 0 tracas en fait. – diapir