縮寫

縮寫

簡單

說明

將一段詞組轉換成它的縮寫。

科技人最愛用他們的 TLA(三個字母的縮寫)!

寫個程式來產生一些行話吧:把像是 Portable Network Graphics 這樣的長名稱轉換成它的縮寫(PNG)。

標點符號的處理方式如下:連字號是詞語的分隔符號(就像空白一樣);其他所有標點符號都可以從輸入中移除。

例如:

輸入 輸出
As Soon As Possible ASAP
Liquid-crystal display LCD
Thank George It's Friday! TGIF

提示

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

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

  • 閱讀 Haskell 中關於字串型別的說明。

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

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

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

  • 查閱Data.Text的文件。

這個部分完全是選用的。


出處

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

準備好開始 縮寫 了嗎?

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

深入探索 縮寫!

我們會輕鬆地深入正規表達式,先從基本的空白比對開始,接著探索 Unicode,最後談到負向後顧。結尾我們會看看其他解決縮寫問題的做法,包括狀態機。