【发布时间】:2020-09-29 15:12:51
【问题描述】:
摘自 Graham Hutton 的《用 Haskell 编程》一书:
import Data.Char
getNat :: String -> IO Int
getNat prompt = do putStrLn prompt
xs <- getLine
if xs /= [] && all isDigit xs then
return (read xs)
else
do putStrLn "ERROR: Invalid number"
getNat prompt
read 函数没有解析参数,但良好的输入被解析为 Int。这怎么可能?
【问题讨论】:
标签: haskell