doubles :: Floating -> Floating
doubles = (0.1 + 1.1) - 1.2
Run Code Online (Sandbox Code Playgroud)
我在 Haskell 中收到此错误
• Expecting one more argument to ‘Floating’
Expected a type, but ‘Floating’ has kind ‘* -> Constraint’
• In the type signature: doubles :: Floating -> Floating
|
32 | doubles :: Floating -> Floating
| ^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
Floating是不是一个类型,Floating是一种类型类,一类型的“基团”,例如Float与Double此类型类的“成员”。因此,您应该添加一个类型约束:
doubles :: Floating a => a
doubles = (0.1 + 1.1) - 1.2Run Code Online (Sandbox Code Playgroud)
因此,这意味着,对于每一种类型a,其中a是的成员Floating类型类,该函数被定义。
类型Floating a => a不是Floating => a -> a,因为没有输入:doubles是一个常量。