#haskell
#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.
Floating
это не тип,Floating
это класс типов, «группа» типов. Таким образом, вы должны добавить ограничение типа.
Ответ №1:
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
является константой.