計算機科学のブログ

HaskellのI/O - テキストとUnicodeの操作 - Data.Text.Lazy, Data.Text.Lazy.IO

入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT4(HaskellのI/O)、LESSON 23(テキストとUnicodeの操作)、23.6(練習問題)、Q23-2の解答を求めてみる。

コード

sample.hs

import qualified Data.Text.Lazy as T
import qualified Data.Text.Lazy.IO as TIO
main :: IO ()
main = do
    userInput <- TIO.getContents
    let numbers = toInts userInput
    print (sum numbers)

toInts :: T.Text -> [Int]
toInts text  = map (read . T.unpack) $ T.lines text

入出力結果(Terminal, Zsh)

% runghc sample.hs
1
2
3
4
5
15
%