Update all new Tasks

This commit is contained in:
Ingy döt Net 2015-02-20 09:02:09 -05:00
parent 00a190b0a6
commit 91df62d461
5697 changed files with 93386 additions and 804 deletions

View file

@ -0,0 +1,34 @@
import Data.Array
import Data.Maybe (isJust)
import Data.List (intercalate)
import Control.Monad (when)
delimiters = ",;:"
fields [] = []
fields xs = let (item, rest) = break (`elem` delimiters) xs
(_, next) = break (`notElem` delimiters) rest
in item : fields next
unfields Nothing = []
unfields (Just a) = every fieldNumber $ elems a
where
((_, _), (_, fieldNumber)) = bounds a
every _ [] = []
every n xs = let (y, z) = splitAt n xs
in intercalate "," y : every n z
fieldArray [] = Nothing
fieldArray xs = Just $ listArray ((1,1), (length xs, length $ head xs))
$ concat xs
fieldsFromFile = fmap (fieldArray . map fields . lines) . readFile
fieldsToFile f = writeFile f . unlines . unfields
someChanges = fmap (// [((1,1), "changed"), ((3,4), "altered"),
((5,2), "modified")])
main = do
a <- fieldsFromFile "example.txt"
when (isJust a) $ fieldsToFile "output.txt" $ someChanges a