我使用this资源浏览类型类,我提出了两种用途:
a)使函数能够采用不同的类型,而无需重新定义函数接口:
class MyClass a where
myFunc :: a -> Bool
instance MyClass Int where
myFunc 1 = False
myFunc x = intFunction x
instance MyClass String where
myFunc "hello" = False
myFunc y = stringFunction
intFunction :: a -> Bool
intFunction i
| i > 100 = True
| otherwise = False
stringFunction :: a -> Bool
stringFunction s
| length s > 10 = False
| otherwise = True
b)将功能导入多态函数:
class Operator a b where
(^&) :: a -> b -> Bool
instance Operator a b where
"hello" ^& 0 = True
x ^& y = False
exampleFunc :: (Operator a b) => a -> b -> Bool
exampleFunc e1 e2 = e1 ^& e2
问题:
1)Haskell中类型类的其他用途是什么?
2)大型程序中通常使用类型类?
N.B如果这是一个非常广泛的问题,我很抱歉,我只是想了解如何围绕类型类构建我的程序