doubles :: Floating -> Floating
doubles = (0.1 + 1.1) - 1.2
我在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
| ^^^^^^^^
答案 0 :(得分:6)
Floating
不是类型,Floating
是类型类,类型的“组”,例如Float
和Double
是此类型类的“成员”。因此,您应该添加类型约束:
doubles :: Floating a => a
doubles = (0.1 + 1.1) - 1.2
因此,这意味着对于每种类型a
,其中a
是Floating
类型类的成员,都定义了此函数。
类型为Floating a => a
而不是Floating => a -> a
,因为没有输入:doubles
是常数。