class 类
顾名思义就是一类玩意,他们有着相似的特点
Eq 等价类
Ord 有序类
Show/Read
Num 数字类
+ - * abs signum
Integral 整数类
div mod
Fractional 小数类
typeclass---类型类
这个翻译的...我快看不懂类字了
data Position = Position Int Int
instance Eq Position where
...给出 "==" 定义
这样 Position 就成为了 Eq 的一个实例 ( instance )
也可以这么写
data Position = Position Int Int
deriving Eq
有不同构造函数的时候可能锅
可以 deriving 的有 Eq, Ord, Enum, Bounded, Show, Read
Show/Read
例:
show 1
"1"
show "abd"
""abc""
为什么这么怪?别问我我也不知道
read "1" :: Int
1
read "abd"
--报错
read ""abd""
"abc"
Ord
deriving Ord 规则:
后面构造函数的值大于前面的
相同构造函数从前往后比较
Enum 枚举类
[1..5] [1,2,3,4,5]
比较鸡肋