hayaのHaskell日記

2006-08-25

[] 8.6節 練習問題 00:26

まずは自力で

lstrip :: String -> String
lstrip = dropWhile matchSpace

matchSpace :: Char -> Bool
matchSpace c = any (== c) [' ', '\t']

rstrip :: String -> String
rstrip = reverse . lstrip . reverse

strip :: String -> String
strip = lstrip . rstrip
main = do cs <- getContents
          putStrLn $ lastNLines 10 cs

lastNLines n = unlines . takeLast n . lines
takeLast n = reverse . take n . reverse

解答を写経

import Char

lstrip :: String -> String
lstrip = dropWhile isSpace

rstrip :: String -> String
rstrip = reverse . lstrip . reverse

strip :: String -> String
strip = rstrip . lstrip
main = do cs <- getContents
          putStr $ lastNLines 10 cs

lastNLines n = unlines . takeLast n . lines
takeLast n = reverse . take n . reverse

isSpaceを自作しちゃった以外は上出来じゃない?matchSpaceは、簡単にスペース文字を追加できるようになってるから、あとからスペース文字を増やすこともできるし、セクション勉強にもなったし、結果オーライってことで。

MohammadMohammad2012/05/02 18:21I ltieallry jumped out of my chair and danced after reading this!

pavgsqfjpavgsqfj2012/05/03 11:28xqgVIZ <a href="http://qjelzltbtkpo.com/">qjelzltbtkpo</a>

lyvvjyxlhlyvvjyxlh2012/05/03 15:13K6fhGU , [url=http://ubxrucmfpltn.com/]ubxrucmfpltn[/url], [link=http://gughlccdruix.com/]gughlccdruix[/link], http://erinivqtnqns.com/

zqefrczqefrc2012/05/04 15:45jVpRsW <a href="http://egcyxsybgnsz.com/">egcyxsybgnsz</a>

jcisbfksmcjcisbfksmc2012/05/05 16:04pcPkE8 , [url=http://wjbzmimoanyc.com/]wjbzmimoanyc[/url], [link=http://rcfbqnmfncrw.com/]rcfbqnmfncrw[/link], http://saucybmfgegy.com/

jcisbfksmcjcisbfksmc2012/05/05 16:05pcPkE8 , [url=http://wjbzmimoanyc.com/]wjbzmimoanyc[/url], [link=http://rcfbqnmfncrw.com/]rcfbqnmfncrw[/link], http://saucybmfgegy.com/

トラックバック - http://haskell.g.hatena.ne.jp/harg/20060825