-1

次のことを行うカレンダープログラムの関数を作成したいと思います。

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

今日が月曜日の場合、この関数は 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

ベクリルに感謝

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

わずか1失点でした!

于 2014-05-05T21:52:28.737 に答える