While-Schleife in Haskell mit einer Bedingung

Bin ich ein wenig Haskell Situation hier. Ich versuche, die zwei Funktionen schreiben, mit Monaden.
Zunächst soll zum Durchlaufen einer Funktion, solange die Bedingung wahr ist für die input /output der Funktion. Zweite soll die erste, um eine Zahl als input und schreiben Sie es so lange ausgegeben, bis Sie einen Raum betreten.

Bin ich fest mit dieser Hilfe?

module Test where

while :: (a -> Bool) -> (a -> IO a) -> a -> IO a
while praed funktion x = do
                         f <- praed (funktion x)
                         if f == True then do
                                             y <- funktion x
                                             while praed funktion y
                         else return x



power2 :: IO ()
power2 = do putStr (Please enter a number.")
            i <- getChar
            while praed funktion
            where praed x = if x /= ' ' then False else True
                  funktion = i
So ist Ihre Frage? Wo sind Sie stecken, was nicht funktioniert?
Diese beiden Funktionen nicht selbst kompilieren noch, und ich bin mir ziemlich sicher, Sie würden nicht tun, was ich will, dass Sie sowieso tun. Ich weiß nur nicht, wie schreiben Sie es in einer funktionierenden version. Ich bin im Grunde versucht, um eine while-Schleife arbeitet mit einem Zustand. So zum Beispiel while odd (square 3) sollte testen, ob Platz 3 ist ungerade, dann verwenden Sie das Ergebnis von Feld 3 = 9 und tun while odd (square 9) und so weiter und weiter. Technisch sollte es kein x, es sollte nur die Arbeit mit while condition function

InformationsquelleAutor Chris | 2013-07-18

Schreibe einen Kommentar