やる気がでない

やらなきゃならないことはたくさんあるんだけど、やる気がでない。で、Haskellに逃避するわけだ。
これはJavaのプロパティファイルみたいな"hoge = fuga"形式のデータをHaskellにロードするモジュール。lazylinesにも似たようなのがあったけど、向こうの方が高機能だけど、再発明した。Hugsで動く。
自分でもHaskellで何か作れないかなー、と思っている。つぎはSocketをさわろう。

module Config (Config, loadConfig) where

import Char (isAlphaNum)

type Config = [(String,String)]

_debug :: IO Config -> IO ()
_debug cfg = do { c <- cfg
                  ;let unzipped = unzip c
                       keys = fst unzipped
                       vals = snd unzipped
                   in putStr $ "keys=[" ++ concatMap (++ ",") keys ++ "]" ++
                        ", vals=[" ++ concatMap (++ ",") vals ++ "]"
                }

loadConfig :: FilePath -> IO Config
loadConfig path = do { conf <- load ;return conf }
    where
        load = parseConfig =<< readFile path

parseConfig :: String -> IO Config
parseConfig contents = return $ config
    where
        config   = map (\ (x,y) -> (trim x,trim $ tail y)) parse
        parse    = map (break (== '=')) (lines contents)
        trim str = filter (isAlphaNum) str