HaskellのI/O ファイルの操作 単純なI/Oツール 文字の結合、String型、Data.Text型、unwords関数
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT4(HaskellのI/O)、LESSON24(ファイルの操作)、24.2(単純なI/Oツール)、クイックチェック 24-3の解答を求めてみる。
String型をData.Text型に変更しやすいから。
関数をText型に書き換えたコード
コード
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.Text as T
countsText :: (Int, Int, Int) -> T.Text
countsText (cc, wc, lc) =
T.unwords
[ "chars: ",
T.pack $ show cc,
" words: ",
T.pack $ show wc,
" lines: ",
T.pack $ show lc
]
main = do
print $ countsText (1, 2, 3)
入出力結果(Terminal, Zsh)
% runghc sample03.hs
"chars: 1 words: 2 lines: 3"
%