Подтвердить что ты не робот

Подпись типа 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

не сделал того, что хотел.

4b9b3361

Ответ 1

Они обычно называются ограничениями класса, поскольку Eq и Num называются типами классов.

Как насчет этого?

f :: (Eq a, Num b) => a -> b

Скобки важны.