类型的输入函数:: io a`

  • 本文关键字:io 函数 类型 haskell
  • 更新时间 :
  • 英文 :


我在前奏返回 String s中知道的唯一"用户输入"功能 - 但是(我会更频繁地说)我们想读取数字或其他类型。

读取任意类型的值的:: IO a类型或类似的函数?我已经搜索了Hoogle的此类功能,但是要么由于它没有存在,要么是由于类似类型的其他功能大量的功能,所以我没有找到任何东西。


似乎有用且简单,必须有一个内置。我来的最接近的是:

-- Eg.
get :: Read a => IO a
get = (liftM read) getLine
main = do
        x <- get
        print $ x + 5

readLn

readLn :: Read a => IO a

值得注意的是,readLn调用readIO以提高IO例外而不是未定义。

Prelude> x <- (fmap read getLine) :: IO Integer 
asdf
Prelude> x
*** Exception: Prelude.read: no parse
Prelude> x <- (readIO =<< getLine) :: IO Integer 
asdf
*** Exception: user error (Prelude.readIO: no parse)

最新更新