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

y.w*_*est -1 haskell

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)

Wil*_*sem 6

Floating是不是一个类型,Floating是一种类型类,一类型的“基团”,例如Float与Double此类型类的“成员”。因此,您应该添加一个类型约束:

doubles :: Floating a => a
doubles = (0.1 + 1.1) - 1.2
Run Code Online (Sandbox Code Playgroud)

因此,这意味着,对于每一种类型a,其中a是的成员Floating类型类,该函数被定义。

类型Floating a => a不是Floating => a -> a,因为没有输入:doubles是一个常量。