从 stdin 读取
根据 Haskell 2010 语言规范 ,以下是 Prelude 中可用的标准 IO 函数,因此不需要导入它们。
getChar::IO Char
- 从 stdin
读取一个 Char
-- MyChar.hs
main = do
myChar <- getChar
print myChar
-- In your shell
runhaskell MyChar.hs
a -- you enter a and press enter
'a' -- the program prints 'a'
getLine::IO String
- 从 stdin
读取 String
,没有新行字符
Prelude> getLine
Hello there! -- user enters some text and presses enter
"Hello there!"
read::Read a => String -> a
- 将 String 转换为值
Prelude> read "1" :: Int
1
Prelude> read "1" :: Float
1.0
Prelude> read "True" :: Bool
True
其他不太常见的功能是:
getContents::IO String
- 将所有用户输入作为单个字符串返回,在需要时可以懒惰地读取interact :: (String -> String) -> IO ()
- 采用 String-> String 类型的函数作为参数。标准输入设备的整个输入作为参数传递给该函数