版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/quicmous/article/details/80813152
下面的程序可以接受键盘输入的数据。
main = do
putStrLn "Hello, what' s your name?"
name <- getLine
putStrLn ("Hey " ++ name ++ ", you rock!")
getLine 每次调用,返回结果可能都会不同,这一点和 Haskell 所说的函数有很大不同,因此,把它的值“赋予”一个变量符号,不再用 “=” 号,而是用 <- 号。
我们看一下 getLine 的类型:
>> :t getLine
getLine :: IO String
可以看出,它表明这是 IO String 类型,事实上这是函数式程序和外部世界打交道的通道,Haskell 借用 IO 类型,划清了有状态/无状态世界边界。