Подпись типа Haskell с несколькими ограничениями класса
Как я могу иметь несколько ограничений класса, так что если A
является Eq
а также B
это Num
Я мог бы сказать либо
f :: Eq a => a -> b`
или же
f :: Num b => a -> b
Итак, как я могу иметь Eq a =>
а также Num b =>
в то же время?
f :: Eq a => Num b => a -> b
,f :: Eq a -> Num b => a -> b
, а такжеf :: Eq a, Num b => a -> b
не делал то, что хотел.
1 ответ
Решение
Их обычно называют классовыми ограничениями, так как Eq
а также Num
называются тип-классы.
Как насчет этого?
f :: (Eq a, Num b) => a -> b
Скобки значимы.