[Haskell-beginners] Brainfuck interpreter stack overflow

Edgar Klerks edgar at goodforall.eu
Tue Jan 26 11:06:25 EST 2010

He Stephen

Thanks for the tip. I will test the performance of Data.Sequence against
Immutable arrays.

 I also have another question about deriving monads. I have modified
Data.List.Zipper, so it supports 2 extra directions (up and down):

data Zipper a = Zip [a] [a] [a] [a]

Now I made a functor out of it:
instance Functor Zipper where
        -- fmap :: (a -> b) -> f a -> f b
        f `fmap` (Zip ls rs ds us) = Zip  (f `fmap` ls) (f `fmap` rs) (f
`fmap` ds) (f `fmap` us)

This works. Now I try to make an monad out of it:

instance Monad Zipper where
     return a = Zip [a] [] [] []
     (Zip ls rs ds us) >>= f = Zip (ls >>= f) (rs >>= f) (ds >>= f) (us >>=

This doesn't work like expected, but when using the newtype derive mechanism
it works.

Thanks for all your help so far.

Best Wishes,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20100126/7fdc60fe/attachment.html

More information about the Beginners mailing list