
29 Nov
2011
29 Nov
'11
7:21 a.m.
2011/11/29 Stefan Holdermans
Martin,
(The trick with `flip` is tempting, but again at the cost of having to peer rather too closely at the implementation of processFile when reading the code).
That "trick" is of course completely orthogonal. One could just as well write:
processFile :: (String -> [a]) -> (a -> (String, String)) -> Editor -> String -> IO () processFile f g ed path = do s <- readFile path ps -> mapM (makePair . g) (f s) es -> return $ V.fromList ps writeIORef ed es
importFile = processFile lines (\x -> (x, "")) loadFile = processFile parseFile id
With the TupleSections extension, you can write (,"") Cheers, Thu