On Mon, Jul 21, 2008 at 1:54 PM, Gracjan Polak <[EMAIL PROTECTED]> wrote: > > Hi all, > > On the other day I noticed that we could optimize 'sequence' more. > I needed it for my monadic parser. Below is my small experiment. > Sequence from standard library needs 2.3s to finish (and additional > stack space), my version uses only 0.65s and default stack. > > Is my version better or am I missing something obvious? >
How does your version compare with the library version in the following tests: test1 = do (x:_) <- sequence [return 5, undefined] return x test2 = do (x:_) <- sequence $ return 5 : undefined return x main = do print $ runIdentity test1 print $ runIdentity test2 The function "runIdentity" is found in Control.Monad.Identity in the mtl package. (I haven't tried this code yet, so it may not really be syntactically correct, but hopefully you get the idea.) -Antoine _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe