時鐘

時鐘

中等

說明

實作一個時鐘,用來處理不含日期的時間。

你應該要能對它加上或減去分鐘。

兩個代表相同時間的時鐘應該彼此相等。

提示

這是一個 24 小時制的時鐘,時間從「00:00」到「23:59」。

要完成這個練習,你需要定義資料型態Clock,加入一個Eq實例,並實作以下函式:

  • addDelta
  • fromHourMin
  • toString

addDelta會把一段以小時和分鐘表示的持續時間,加到以Clock實例表示的某個時刻上。

fromHourMin接受小時和分鐘,並回傳一個帶有這些小時和分鐘的Clock實例。

toString接受一個Clock實例,並回傳該時鐘的字串表示,格式為補零形式,例如「08:03」或「22:35」。

你會看到程式裡已經放好了虛設的資料宣告和型別簽章,但定義這些函式,以及建立有意義的資料型態、newtype或型別同義詞,都要靠你自己。

如果你在型別方面需要一些入門的幫助,可以參考:


出處

與 Erin Drummond 的結對工作階段
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Haskell Exercism

準備好開始 時鐘 了嗎?

註冊 Exercism,透過 107 個練習 和真人引導來學習並精通 Haskell,全部免費。