如何才能有多个类约束,因此如果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
没做我想做的事。
答案 0 :(得分:45)
它们通常被称为类约束,因为Eq
和Num
被称为类型类。
这个怎么样?
f :: (Eq a, Num b) => a -> b
括号很重要。