Seasons.NET

ちょっとした技術ブログです

ふつける練習問題その6

この問題あたりから、Seasons独自というか勢いなコードが見受けられる・・・
もっとフリーポイントスタイルを・・・

 1 -- 標準入力から読み込んだ各行を幅60バイトに収まるように折り返すコマンド
 2 -- foldを書きなさい。単語境界やマルチバイト文字は考えなくてもかまいません
 3 import System
 4 
 5 spliteValue = (60 :: Int)
 6 
 7 -- -------------------------------------------------------------------
 8 -- where 用いてみた
 9 -- -------------------------------------------------------------------
10 main = do args <- getArgs
11           contents <- readFile (head args)
12           putStr $ unlines $ fold contents
13 
14 fold cs = fold' (splitAt spliteValue cs)
15     where
16       fold' ( [ ] , [ ] ) = [ ]
17       fold' (cs,c)  = (lines cs) ++ (fold' (splitAt spliteValue c))
18 
19 -- -------------------------------------------------------------------
20 -- 勢いで書いた
21 -- -------------------------------------------------------------------
22 main = do args <- getArgs
23           contents <- readFile (head args)
24           putStr $ unlines $ fold $ (splitAt spliteValue contents)
25 
26 fold ( [ ],[ ] ) = [ ]
27 fold (cs,c)  = (lines cs) ++ (fold (splitAt spliteValue c))