計算機科学のブログ

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"
%