Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
2006-10-19 [Haskell] トドちゃんカウンタ
結城さんのトドちゃんを数えるPerlスクリプトのHaskell版
カレントディレクトリにある *.txt ファイル中の行頭が todo: であるような行の数を数えて,ファイル毎の todo の数と,トータルを表示する.
% countTodo.lhs 2006-10-15.txt: 3 2006-10-16.txt: 12 2006-10-17.txt: 8 2006-10-18.txt: 20 ε( v ゜ω゜) < TODO 43 頭♪
てな感じ.
#!/usr/bin/env runhaskell
\begin{code}
module Main (main) where
import Control.Monad (foldM)
import Data.Char (toLower)
import Data.List (isPrefixOf,isSuffixOf)
import System.Directory (getCurrentDirectory,getDirectoryContents)
import UTF8 -- 俺様UTF8.hs
main :: IO ()
main = getCurrentDirectory
>>= getDirectoryContents
>>= foldM countTodo 0 . filter (".txt" `isSuffixOf`)
>>= putStrLn . toUTF8 . todo
todo :: Int -> String
todo c = "ε( v ゜ω゜) < TODO "++show c++" 頭♪"
countTodo :: Int -> String -> IO Int
countTodo c f
= flip catch
(return . const c)
(do { cs <- readFile f
; let len = length $ filter (("todo:" `isPrefixOf`).map toLower)
$ lines cs
; putStrLn $ ((f ++ ": ")++) $ show len
; return (c+len)
})
\end{code}
--nobsun
EyeUbLoOFtbZQv: (Tue Dec 30 08:46:34 2008
)
googlaaa: (Thu Apr 23 19:17:52 2009
)
SjQxpSiTA: (Tue Sep 15 20:23:39 2009
)
cjdwDLHakPZKQ: (Sun Oct 11 23:09:05 2009
)
Faggot56: (Fri Oct 23 02:28:04 2009
)
sandy: (Sun May 30 02:58:43 2010
)
samanta: (Wed Sep 1 11:20:16 2010
)
canadian drugs onlin: (Thu Feb 17 17:58:25 2011
)
jonn1: (Tue Jul 19 02:19:30 2011
)
jonn1: (Tue Jul 19 02:41:20 2011
)
crysty: (Sun Jul 31 09:10:47 2011
)
marmont: (Sun Jul 31 13:38:15 2011
)
trinity: (Sun Jul 31 14:02:54 2011
)
geoge: (Sun Jul 31 16:20:37 2011
)
marmont: (Tue Aug 23 06:03:37 2011
)
trinity: (Tue Aug 23 18:27:32 2011
)
trinity: (Wed Aug 24 07:24:42 2011
)
joseph: (Wed Aug 24 20:05:01 2011
)
b0SamueL0b: (Sat Sep 10 07:44:20 2011
)
Aeoxxomr: (Sun Sep 11 21:55:52 2011
)
uiTomas0k: (Fri Sep 16 00:00:51 2011
)
geogen: (Tue Oct 4 21:59:45 2011
)
trinity: (Wed Oct 5 14:53:35 2011
)
joseph: (Thu Oct 6 07:42:33 2011
)
Wilman: (Thu Oct 6 14:13:55 2011
)
vwvzksmoij: (Fri Oct 21 22:20:37 2011
)
Wilman: (Fri Oct 28 23:25:31 2011
)
gcmcieqgdb: (Sun Nov 27 11:54:21 2011
)
xsrxgrenae: (Sun Nov 27 21:14:38 2011
)
DrZoibergLo: (Tue Nov 29 18:27:04 2011
)
joseph: (Tue Jan 3 09:14:17 2012
)
trinity: (Tue Jan 3 10:18:26 2012
)
pHLMEZJ7: (Wed Jan 25 00:10:05 2012
)
Oalwgqpu: (Thu Jan 26 05:40:15 2012
)