我在這裏有一個小哈斯克爾情況。我試圖用monad編寫兩個函數。 只要條件對於函數的輸入/輸出爲真,首先應該遍歷一個函數。第二個應該使用第一個數字作爲輸入,並將其寫入輸出,直到輸入空格。雖然在Haskell循環條件
我堅持這一點,任何幫助?
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
那麼,哪一個是你的問題呢?你卡在哪裏,什麼不行? – leftaroundabout
這兩個函數都沒有編譯,我敢肯定,他們不會做我希望他們做的事情。我只是不知道如何在工作版本中編寫它。我基本上試圖讓一個while循環處理一個條件。因此,例如, '而奇數(方格3)' 應該測試方格3是否是奇數,然後使用方格3 = 9的結果並且在奇數(方格9)的情況下使用 '等等。 從技術上講,它不應該需要一個x,它應該只與 ''同時條件函數' – Chris