指定した文字数で改行
テキスト*1P.191の問題。頑張ってはみたものの、型の問題ではまって断念。解答例を参考に、「もし自力で解けていたら」のコード。"splitLine"はほぼそのまま。
splitLine n line = case splitAt n line of (s, "") -> [s] (s, ss) -> s : splitLine n ss splitLines n = unlines . concatMap ( splitLine n ) main = do cs <- getContents putStrLn $ splitLines 40 $ lines cs
学習ポイントは、"map","部分適用(カリー化?)","ポイントフリー"です。
*1:http://d.hatena.ne.jp/argius/20061219/1166542654