当前位置: 代码迷 >> 综合 >> Haskell 学习笔记-15:IO操作,有状态/无状态世界的隔离与结合
  详细解决方案

Haskell 学习笔记-15:IO操作,有状态/无状态世界的隔离与结合

热度:62   发布时间:2023-12-12 16:27:09.0

下面的程序可以接受键盘输入的数据。

main = doputStrLn "Hello, what' s your name?"   name <- getLine   putStrLn ("Hey " ++ name ++ ", you rock!")

getLine 每次调用,返回结果可能都会不同,这一点和 Haskell 所说的函数有很大不同,因此,把它的值“赋予”一个变量符号,不再用 “=” 号,而是用 <- 号。

我们看一下 getLine 的类型:

>> :t getLine
getLine :: IO String

可以看出,它表明这是 IO String 类型,事实上这是函数式程序和外部世界打交道的通道,Haskell 借用 IO 类型,划清了有状态/无状态世界边界。

  相关解决方案