我有一個簡短的互動對話框,其中計算機要求輸入一個數字,如果它小于 77,則表示它太小并重試。
我手頭的問題可能很簡單,但由于我相對較新,我似乎無法解決它,也無法在網上找到任何相關問題。
import Text.Read
myread :: IO Int
myread = do putStr "Please enter a number: "
x <- readLn
return x
isItLarge :: IO()
isItLarge = do
result <- myread;
if result < 77 then putStrLn "Tiny, try again!";
myread
else putStrLn "Massive!";
在我的邏輯中,呼叫 myread 應該將其恢復到頂部并允許您繼續直到達到 n > 77。任何幫助,將不勝感激:)
為幫助家伙干杯,我現在明白了。從最初通過不取出then putStrLn "Tiny, try again!"并用下面的東西替換塊而掙扎,我現在明白了
if result < 77 then do putStrLn "Tiny, try again!";
isItLarge
else putStrLn "Massive!";
uj5u.com熱心網友回復:
對于您問題中的特定程式,最簡單的方法是將您的第二次呼叫替換為myread對 的遞回呼叫isItLarge。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/355871.html
