Haskell的read函数解释
Haskell's read function explanation
不知是否有人熟悉 Haskell 中 Prelude 的 read
功能。
此函数的类型如下。
Read a => String -> a
有人可以通过几个示例向我解释如何使用此函数以及可以将字符串转换为哪些类型?
谢谢
Read a => String -> a
表示 a
可以是 Read
class 的实例的任何类型。对于满足该要求的类型,它必须至少实现 Read
的 readPrec
或 readsPrec
函数之一。许多内置类型已经提供了一个实现,您可以使用 deriving
为您自己的自定义 data
类型生成一个实现。
要指定你想要read
的字符串,你可以直接输入注释调用:
read "1" :: Int
或者给包含对 read
的调用的函数一个签名,这样编译器就可以弄清楚你想要什么:
myFunc :: String -> Int
myFunc s = read s
签名表明函数 returns 是一个 Int,因此编译器可以推断出 read
s
的类型,因为 myFunc
returns 无论如何对 read
的调用评估为。
不知是否有人熟悉 Haskell 中 Prelude 的 read
功能。
此函数的类型如下。
Read a => String -> a
有人可以通过几个示例向我解释如何使用此函数以及可以将字符串转换为哪些类型?
谢谢
Read a => String -> a
表示 a
可以是 Read
class 的实例的任何类型。对于满足该要求的类型,它必须至少实现 Read
的 readPrec
或 readsPrec
函数之一。许多内置类型已经提供了一个实现,您可以使用 deriving
为您自己的自定义 data
类型生成一个实现。
要指定你想要read
的字符串,你可以直接输入注释调用:
read "1" :: Int
或者给包含对 read
的调用的函数一个签名,这样编译器就可以弄清楚你想要什么:
myFunc :: String -> Int
myFunc s = read s
签名表明函数 returns 是一个 Int,因此编译器可以推断出 read
s
的类型,因为 myFunc
returns 无论如何对 read
的调用评估为。