我想知道是否有人熟悉read
Haskell 中 Prelude 的功能。
该函数的类型如下。
Read a => String -> a
有人可以用几个例子来解释我如何使用这个函数以及可以将 String 转换成什么类型?
谢谢
我想知道是否有人熟悉read
Haskell 中 Prelude 的功能。
该函数的类型如下。
Read a => String -> a
有人可以用几个例子来解释我如何使用这个函数以及可以将 String 转换成什么类型?
谢谢
Read a => String -> a
意味着它a
可以是任何作为类实例的Read
类型。对于满足该要求的类型,它至少必须具有Read
'sreadPrec
或readsPrec
函数的实现。许多内置类型都提供了一个实现,您可以使用它来为您自己的自定义类型deriving
生成一个实现。data
要指定你想要read
的字符串,你可以直接输入 annotate 调用:
read "1" :: Int
或者给包含对read
签名的调用的函数,以便编译器可以找出你想要的:
myFunc :: String -> Int
myFunc s = read s
签名表示该函数返回一个 Int,因此编译器可以推断出什么类型,read
s
因为myFunc
返回任何调用的read
评估结果。