:t value
可以查看数据的类型,haskell是强类型语言
对于函数也是
例如:
fun :: [Char] -> [Char]
对于函数fun,参数就一定是char array,即是String(等价的)
类型类用于定义一个公共的接口
为各种不同的类型提供一组公共特性集。
类似于接口interface:
class typeclassname a where
funtionname :: a -> a -> returntype
可以类比于java的:
interface<T,R> name{
R funtion(T t,T t);
}
然后实现类型类的实例类型
instance typeclassname type where
funtionname arg arg = return
例如:
class EqualClass a where
equalFun :: a->a->Bool
instance EqualClass Bool where
equalFun True True = True
equalFun True False = False
equalFun False False = True
equalFun _ _ = False
--同或
类比java:
class interfaceImpl<Bool,Bool> implement interface{
Bool funtion(Bool l, Bool r){
retutn !(l^r);
//同或
}
}
所以,类型类更像一种接口,可以实现出不同类的情况下的函数行为