原帖由 pass12163com 于 2009-4-27 01:30 发表
data Week = Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday
deriving (Show,Enum,Eq)
想要实现:next Monday = Tuesday,next Tuesday = Wednesday...next Sunday应该是Monday,如此循环。
succ Sunday和pred Monday都是非法的
原帖由 izhier 于 2009-4-28 09:23 发表
难道是:
data Week = Mon | Tue | Wed | Thu | Fri | Sat | Sun
deriving (Show, Eq)
只需定义最小组合的函数集,其他的系统会自动生成(因为其他函数是使用这些最小组合的函数来定义的)
原帖由 pass12163com 于 2009-4-28 15:24 发表
谢谢详解,清晰了。
其实在本例中,由于只涉及到succ pred或者next previous,所以重新定义哪怕是“最小的函数集合”,也没有多少甜头。
最好的办法就是直接 instance Enum
原帖由 pass12163com 于 2009-4-30 14:00 发表
多谢指点。
不过在数据元素很多的情况下,instance Enum重新定义函数集非常单调乏味而繁重,如果再考虑函数的多态性,那会更糟糕。您说呢?
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |