美文网首页
basic typeclasses

basic typeclasses

作者: F4A3 | 来源:发表于2017-12-01 10:56 被阅读0次

typeclasses: haskell 中的相当于类型接口的基类。
在检查==方法时
返回

:t (==)
(==) :: (Eq a) => a -> a -> Bool

上面的代码中=>表示class constrain.
可以这么理解: ==方法提供两个参数.这两个参数必须是Eq类的成员. haskell中除了function跟io相关类型,其余类型都是Eq typeclass的一部分.
一些常见的typeclasses:

  • Eq:供类型使用,提供了相等判断方法. 使用==/=来实现
  • Ord: 排序 Ordering is a type that can be GT, LT or EQ. 必须加入Eq成员组.
  • Show: 能够使用strings来表示。使用show方法使用
  • Read : 与Show相反,通过strings可以使用read方法把字符串转换为相应的类型。
  • Enum : 枚举类型。都是连续的。每个值都有后继子跟前置子。分别可以通过succpred函数获得. Types in this
    class: (), Bool, Char, Ordering, Int, Integer, Float, Double.
  • Bounded :都有一个上限跟下限
ghci> minBound :: Int  
-2147483648  
ghci> maxBound :: Char  
'\1114111'  
ghci> maxBound :: Bool  
True  
ghci> minBound :: Bool  
False 

minBoundmaxBound 都是多态常量

  • Num : 是数字类型typeclass. 它的成员有数字的特征。
    想作为Num的成员,这个类型必须已经实现了ShowEq

相关文章

网友评论

      本文标题:basic typeclasses

      本文链接:https://www.haomeiwen.com/subject/ktqvbxtx.html