エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

2007-03-29から1日間の記事一覧

TabをSpaceに展開

tabToSpace tabSize s = tabToSpace' tabSize s where tabToSpace' _ "" = "" tabToSpace' 0 s = tabToSpace' tabSize s tabToSpace' i ('\t':cs) = (take i $ repeat ' ') ++ (tabToSpace' tabSize cs) tabToSpace' i (c:cs) = c:(tabToSpace' (i-1) cs)

Haskellでcatコマンド(例外処理付き)

import System cat :: [String] -> IO () cat [] = getContents >>= putStr -- 標準入力 cat [f] = catch (readFile f >>= putStr) -- 任意のファイル(例外捕捉付き) (\e -> putStr ("CANNOT OPEN " ++ f ++ "\n")) cat (f:fs) = cat [f] >> cat fs -- 複数…