Anonymous user
Update a configuration file: Difference between revisions
→{{header|Haskell}}: Updated reading in order to fulfill the task
mNo edit summary |
(→{{header|Haskell}}: Updated reading in order to fulfill the task) |
||
Line 872:
EmptyLine -> ""
instance Read Entry where
readsPrec _ s = [(interprete (clean " " s), "")]
where
clean chs = dropWhile (`elem` chs)
interprete ('#' : text) = Comment text
interprete (';' : f)= flag (clean " ;" f) False
interprete entry = case words entry of
[]
flag f = Flag (toUpper <$> f)</lang>
Getting and setting fields in INI data:
<lang Haskell>
(lst, []) -> (lst, [])▼
(lst, _:post) -> (lst, post)▼
where
eqv f entry = (toUpper <$> f) == (toUpper <$> field entry)
field (Field f _) = f
field (Flag f _) = f
field _ = ""
▲ (lst, []) -> (lst, [])
▲ (lst, _:post) -> (lst, post)
setValue :: String -> String -> INI -> INI
|