类型类的常见用途是什么?

时间:2017-02-02 17:28:26

标签: haskell types

我使用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如果这是一个非常广泛的问题,我很抱歉,我只是想了解如何围绕类型类构建我的程序

0 个答案:

没有答案