[Haskell-cafe] minor refactoring problem

Vo Minh Thu noteed at gmail.com
Tue Nov 29 13:21:12 CET 2011


2011/11/29 Stefan Holdermans <stefan at vectorfabrics.com>:
> 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



More information about the Haskell-Cafe mailing list