
Can you show some code fragments demonstrating how the combinators are used? I find it easier to understand the underlying concepts when I have not only the signature and implementation but an example of a typical use. It doesn't have to be working code, and it might even be pseudo code. (I'm not sure whether other Haskell folks feel the same way.)
On Sun, 6 Jan 2008 13:35:41 -0800
"Iavor Diatchki"
Hello, I propose that we add the following combinators to the 'Control.Applicative' module:
skipMany :: (Alternative f) => f a -> f () skipMany p = skipSome p <|> pure ()
skipSome :: (Alternative f) => f a -> f () skipSome p = p *> skipMany p
endBy :: (Alternative f) => f a -> f b -> f [a] endBy p s = many (p <* s)
endBy1 :: (Alternative f) => f a -> f b -> f [a] endBy1 p s = some (p <* s)
sepBy :: (Alternative f) => f a -> f v -> f [a] sepBy p s = sepBy1 p s <|> pure []
sepBy1 :: (Alternative f) => f a -> f v -> f [a] sepBy1 p s = (:) <$> p <*> many (s *> p)
Any objections? Deadline for discussion is 2 weeks from now, which would be the 20th of Jan.
-Iavor _______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries
--
Seth Kurtzberg