在haskell中将浮动类型转换为浮动类型

时间:2020-10-06 13:01:41

标签: haskell

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 
   |                        ^^^^^^^^

1 个答案:

答案 0 :(得分:6)

Floating不是类型,Floating是类型类,类型的“组”,例如FloatDouble是此类型类的“成员”。因此,您应该添加类型约束:

doubles :: Floating a => a
doubles = (0.1 + 1.1) - 1.2

因此,这意味着对于每种类型a,其中aFloating类型类的成员,都定义了此函数。

类型为Floating a => a而不是Floating => a -> a,因为没有输入:doubles常数