ふつうのHaskellプログラミング2.5リスト処理の基本(1)

head.hs

main = do cs <- getContents
          putStr $ firstNLines 10 cs
firstNLines n cs = unlines $ take n $ lines cs

なるほど。関数の定義はこう書くのか。で、またputStrとprintを交換してみた。

head2.hs

main = do cs <- getContents
          print $ firstNLines 10 cs
firstNLines n cs = unlines $ take n $ lines cs

出てきた出力が
"AL\tAlabama\nAK\tAlaska\nAZ\tArizona\nAR\tArkansas\nCA\tCalifornia\nCO\tColorado\nCT\tConnecticut\nDE\tDelaware\nFL\tFlorida\nGA\tGeorgia\n"
制御文字がそのままでてきてしまった。しかもダブルクォーテーションでくくられてる。
少しprintとputStrの違いがわかった。