計算機科学のブログ

HaskellのI/O - テキストとUnicodeの操作 - Data.Textを使用する - splitOn関数, intercalate関数

入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT4(HaskellのI/O)、LESSON 23(テキストとUnicodeの操作)、23.2(Data.Textを使用する)、クイックチェック 23-3の解答を求めてみる。

コード

sample3.hs

{-# LANGUAGE OverloadedStrings #-}
import qualified Data.Text as T

main :: IO ()
main = do
    print $ myLines sampleInput
    print $ myUnlines (myLines sampleInput)

myLines :: T.Text -> [T.Text]
myLines = T.splitOn "\n"

myUnlines :: [T.Text] -> T.Text
myUnlines = T.intercalate "\n"

sampleInput :: T.Text
sampleInput = "this\nis\ninput"

入出力結果(Terminal, Zsh)

% runghc sample3.hs 
["this","is","input"]
"this\nis\ninput"
%