哈斯克尔的读取函数解释



我想知道是否有人熟悉 Haskell 中前奏曲的read功能。

此函数的类型如下。

Read a => String -> a

有人可以用几个例子来解释我如何使用这个函数以及字符串可以转换为什么类型吗?

Read a => String -> a表示a可以是Read类实例的任何类型。对于满足该要求的类型,它必须至少实现ReadreadPrecreadsPrec函数之一。许多内置类型都准备好提供实现,您可以使用deriving为自己的自定义data类型生成实现。

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

read "1" :: Int

或者给包含read调用的函数提供一个签名,以便编译器可以弄清楚你想要什么:

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

签名表示该函数返回一个 Int,因此编译器可以推断出要read s的类型,因为myFunc返回read计算的调用的任何内容。

最新更新