やる気がでない
やらなきゃならないことはたくさんあるんだけど、やる気がでない。で、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