Bob

Bob

簡單

簡介

Bob 是個[慵懶][]的青少年。 他喜歡覺得自己很酷。 而且他絕對不會因為任何事情而興奮起來。 那樣就不酷了。

別人跟他說話時,他的回應相當有限。

說明

你的任務是判斷當有人對 Bob 說話,或是問他問題時,他會回覆什麼。

Bob 只會回答以下五種的其中一種:

  • "Sure." 如果你問他問題,例如 "How are you?",這就是他的回應。 問題的慣例是以問號結尾。
  • "Whoa, chill out!" 如果你對他大吼,這就是他的回答。 大吼的慣例是全大寫字母。
  • "Calm down, I know what I'm doing!" 如果你對他大吼一個問題,這就是他會說的話。
  • "Fine. Be that way!" 這是他對沉默的回應。 沉默的慣例是什麼都沒有,或是各種空白字元的組合。
  • "Whatever." 這是對其他任何情況的回答。

提示

你需要實作responseFor函式,它會針對給定的輸入回傳 Bob 的回應。如果你不確定型別,可以使用提供的簽章,但別讓它限制你的創意:

responseFor :: String -> String

想解開這個練習,你可以先閱讀:

這個練習處理的是文字資料。基於歷史因素,Haskell 的String型別等同於[Char],也就是字元的陣列。若要更有效率地處理文字資料,可以使用Text型別。

作為這個練習的選用延伸,你可以

  • 閱讀 Haskell 中的字串型別。

  • 在 package.yaml 的相依套件清單中加上- text。

  • 用以下方式匯入Data.Text:

    import qualified Data.Text as T
    import           Data.Text (Text)
    
  • 現在你可以寫出例如responseFor :: Text -> Text,並以例如T.isSuffixOf取用Data.Text的組合子。

  • 查閱Data.Text的說明文件,

  • 接著你可以在 Bob.hs 中把所有String取代為Text:

    responseFor :: Text -> Text
    

這部分完全是選用的。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Haskell Exercism

準備好開始 Bob 了嗎?

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