use mapM you've got mapMI :: (a -> IO b) -> [a] -> IO [b] mapMI _ [] = return [] mapMI f (x:xs) = do y <- SIU.unsafeInterleaveIO (f x) ; ys <- SIU.unsafeInterleaveIO (mapMI f xs) ; return (y:ys) in your code, and thats going to make you sad On Tue, Jun 24, 2014 at 12:08 PM, C K Kashyap <ckkashyap@gmail.com> wrote:
Dear cafe,
I have created a reproducible app here - https://github.com/ckkashyap/haskell-perf-repro
Essentially I am trying to open a number of files and printing out their sized by reading them in and computing it's length.
I have the equivalent perl program also there. I'd appreciate it very much if someone could take a look at my Haskell implementation and point out what I am doing wrong. Since it's over 50 times slower than the perl code, I assume I am doing something obviously incorrect.
Regards, Kashyap
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe