Haskell的读函数解释

时间:2018-03-04 19:45:35

标签: function haskell haskell-prelude

我想知道是否有人熟悉Haskell中Prelude的read函数。

此功能的类型如下。

Read a => String -> a

有人可以用一些例子向我解释如何使用这个函数以及可以投射String的类型吗?

谢谢

1 个答案:

答案 0 :(得分:4)

Read a => String -> a表示a可以是Read类的实例的任何类型。对于满足该要求的类型,它必须至少具有Read&#39} readPrecreadsPrec函数的实现。许多内置类型都提供了实现,您可以使用deriving为您自己的自定义data类型生成实现。

要指定您想要read字符串的内容,您可以直接键入注释:

read "1" :: Int

或者给函数括起read一个签名,这样编译器就可以找出你想要的东西:

myFunc :: String -> Int
myFunc s = read s

签名表示该函数返回一个Int,因此编译器可以推断出read s的类型,因为myFunc会返回readperform的调用。 。