定义类型类

原创 2015年07月07日 10:17:17
data Color = Red|Blue|Green

class BasicEq a where
	isEqual :: a->a->Bool
	isEqual x y = not (isNotEqual x y)

	isNotEqual :: a->a->Bool
	isNotEqual x y = not (isEqual x y)

instance  BasicEq Bool where
	isEqual False False = True
	isEqual True True = True
	isEqual _ _ = False 

instance BasicEq Color where
    isEqual Red Red = True
    isEqual Blue Blue = True
    isEqual Green Green = True
    isEqual _ _ = True

定义类型类使用

class className xxx where

常用的函数show

其函数签名

*Main> :type show
show :: Show a => a -> String

可知它是类型类Show里的一个方法,方法签名如上

同理看看我们的自定义


*Main> :type isEqual
isEqual :: BasicEq a => a -> a -> Bool
*Main> 


使用时可以指定返回类型

*Main> (isEqual True False ):: Bool
False

指定输入类型

*Main> isEqual Blue (Blue::Color)
True



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++类中定义数据成员的类型的几种方式

C++类中定义数据成员的类型的几种方式

C++ Pirmer : 第十五章 : 面向对象程序设计之基类和派生的定义、类型转换与继承与虚函数

基类与派生类的定义以及虚函数的使用, 基类和派生类的相互转换和继承。
  • JY_95
  • JY_95
  • 2015年09月15日 02:39
  • 581

springMVC与shiro整合与自定义验证码用户类型类

shiro账号验证与权限管理 首先是账号验证的整合 1、导入shiro与spring必要的jar包 2、在web.xml中配置 --> shiro...
  • zjs40
  • zjs40
  • 2015年11月22日 10:39
  • 593

vector 自定义类类型 排序

这些日子,因为工作需要,需要在界面上画三条线,每条线上绘制若干个十字,每条线上的十字个数不一定相同,能方便的根据坐标添加、删除、修改、查找十字点。定义类如下:class CbdShiZhi  {pub...
  • llyyt85
  • llyyt85
  • 2011年04月28日 22:23
  • 1641

c++高级---c++类的内部定义比较特殊的东西(类型,常量等)

一、在类的内部定义新的类型,并引伸出union的妙用 转自:http://www.blogjava.net/bacoo/archive/2008/07/13/214616.html 在类内部其...

C/C++学习笔记(四)自定义数据类型:枚举类、结构体、链表

前几篇博客已经介绍了许多的数据类型了,然而只是使用那些数据类型还很难以把我们纷繁复杂的世界描述的清除,于是乎C/C++允许我们自己定义更符合我们要求的数据类型,主要包括枚举类、结构体、链表等。...

自定义抽象数据类型,即类

在类的定义中,必须保证所定义的类类型是一个抽象数据类型,这是为什么?比如C++类库自带的类中,若抽象数据类型int在库中定义时不是按照ADT规则来定义,即int不是抽象数据类型,那么程序员还能保证每一...

http的get字符串类型和post自定义类的两种方法--测试成功

1. string类型的参数,get方法 /// /// 执行服务的方法 /// /// 方法名称 /// 参数列表 ...

[bxd学习java基本点]13泛型类,泛型方法,当定义二种类型的泛型方法时,用迭代器的方法

15-08 自定义的类中使用泛型,即为泛型类 class Worker{ } class Student{ } class Tool{ private Object obj; ...
  • bonlog
  • bonlog
  • 2013年04月14日 10:35
  • 946

Item 46:需要类型转换时,应当在类模板中定义非成员函数

Item 46: Define non-member functions inside templates when type conversions are desired. Item 2...
  • yangjvn
  • yangjvn
  • 2016年02月19日 11:52
  • 887
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:定义类型类
举报原因:
原因补充:

(最多只允许输入30个字)