-1

我想为日历程序创建一个函数,它执行以下操作:

proceed :: Day -> Int -> Day
> proceed Mon 9
Wed

函数proceed应该告诉我,如果今天是星期一,9天内是星期几。

现在我试试这个:

data Day = Mon | Tue | Wed | Thu | Fri | Sat | Sun deriving Show

next :: Day -> Day
next Mon = Tue
next Tue = Wed
next Wed = Thu
next Thu = Fri
next Fri = Sat
next Sat = Sun
next Sun = Mon

proceed :: Day -> Int -> Day
proceed d a = if a==0 then next d
              else proceed (next d) (a-1) 

我尝试:

proceed Mon 9
Thu

但那是错误的,正确的答案是星期三!!!!!!!我不知道我在哪里犯了错误。

4

1 回答 1

1

感谢 bheklilr

if a == 0 then d else proceed (next d) (a-1)

这只是一个错误!

于 2014-05-05T21:52:28.737 回答