我想知道是否有人熟悉Haskell中Prelude的read
函数。
此功能的类型如下。
Read a => String -> a
有人可以用一些例子向我解释如何使用这个函数以及可以投射String的类型吗?
谢谢
答案 0 :(得分:4)
Read a => String -> a
表示a
可以是Read
类的实例的任何类型。对于满足该要求的类型,它必须至少具有Read
&#39} readPrec
或readsPrec
函数的实现。许多内置类型都提供了实现,您可以使用deriving
为您自己的自定义data
类型生成实现。
要指定您想要read
字符串的内容,您可以直接键入注释:
read "1" :: Int
或者给函数括起read
一个签名,这样编译器就可以找出你想要的东西:
myFunc :: String -> Int
myFunc s = read s
签名表示该函数返回一个Int,因此编译器可以推断出read
s
的类型,因为myFunc
会返回read
对perform
的调用。 。