具有多个类约束的Haskell类型签名

时间:2012-06-19 03:03:34

标签: haskell types static-typing type-signature

如何才能有多个类约束,因此如果AEqBNum,我可以说

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 个答案:

答案 0 :(得分:45)

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

这个怎么样?

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

括号很重要。