多类约束哈斯克尔类型签名(Haskell type signature with multiple

2019-07-30 00:09发布

怎样才可以有多个类的限制,因此,如果A是一个EqBNum ,我可以说,无论是

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

没有做什么,我想要的。

Answer 1:

他们通常被称为类的限制 ,如EqNum被称为类型类。

这个怎么样?

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

括号是显著。



文章来源: Haskell type signature with multiple class constraints