1. 程式人生 > >Haskell語言學習筆記(93)Data.Text

Haskell語言學習筆記(93)Data.Text

Data.Text.Read

Prelude> :set -XOverloadedStrings
Prelude> :m +Data.Text.Read
Prelude Data.Text.Read> decimal "123"
Right (123,"")
Prelude Data.Text.Read> decimal "abc"
Left "input does not start with a digit"
Prelude Data.Text.Read> rational "123.4"
Right (123.4,"")
Prelude Data.Text.Read> signed double "-3.4"
Right (-3.4,"")
decimal :: Integral a => Reader a
type Reader a = IReader Text a
type IReader t a = t -> Either String (a, t)
  • Data.Text.Read 中的函式用於解析 Text 型別的字串,將其裝換為數值型別。
  • decimal 函式負責解析整數值,它接收一個 Text 型別的字串作為引數,返回 Either 型別的值。
    成功時返回一個二元組,字串所包含的數值以及剩餘的字串
    失敗時返回錯誤資訊:該輸入不以數字開頭
  • rational 函式與 decimal 相類似,它負責解析有理數的值。

Data.Text.IO

Prelude> :set -XOverloadedStrings
Prelude> import qualified Data.Text.IO as TIO
Prelude TIO> TIO.putStrLn "Хорошо!"
Хорошо!
Prelude TIO> TIO.putStrLn "哈斯克爾7.6.1的力量"
哈斯克爾7.6.1的力量
Prelude TIO> TIO.putStrLn "感じる"
感じる