30

我怎么能有多个类约束,所以 if Ais an Eqand Bis a 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

没有做我想做的事。

4

1 回答 1

59

它们通常称为类约束EqNum称为类型类。

这个怎么样?

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

括号很重要。

于 2012-06-19T03:10:01.887 回答