Kurze Antwort: Sie nicht. In der funktionalen Programmierung werden Variablen generell nicht verändert, was bedeutet, dass eine Schleife nicht möglich ist. Stattdessen können Sie dasselbe mithilfe der Rekursion implementieren. Da Sie im Allgemeinen keine Nebenwirkungen haben, sind Funktionsaufrufe nur dann sinnvoll, wenn sie Daten zurückgeben. Also Bar (Zeug) ist wahrscheinlich nicht sehr nützlich. Es hat keine Möglichkeit, den Rest der Anwendung zu beeinflussen. In einem funktionalen Programmierstil sollte Ihre bar() - Funktion jedes Mal auf anderen Daten aufgerufen werden und etwas zurückgeben, auf das der Rest der Anwendung zugreifen kann.
(ML hat Nebenwirkungen in bestimmten Fällen zulassen, aber die Dinge einfach zu halten, lassen wir das ignorieren vorerst)
Was genau wollen Sie erreichen? (Was müssen Sie durchlaufen, was machen die Funktionen?
Wenn Sie etwas mehr Details angeben, können wir genauer erklären, wie Sie das Programm schreiben sollten, aber so wie es ist, Ihr Programm einfach nicht Sinn macht, in einem funktionalen Stil.
+1 für den Kommentar entsprechend; Einrückung! – diapir
@diapir: Bah, ich würde -1 für diese Semikolon-Platzierung geben, wenn mir mehr daran liegt als über den Inhalt. – Svante
@Svante: Nicht sicher, was durch meinen Kopf ging, würde ich es tatsächlich geben 0 Aufregung. – diapir