
Many thanks guys, you've really taught me how to catch a fish here! Paul -----Original Message----- From: Brandon S. Allbery KF8NH [mailto:allbery@ece.cmu.edu] Sent: Sat 3/29/2008 1:41 AM To: haskell-cafe@haskell.org Cafe Cc: Paul Keir Subject: Re: [Haskell-cafe] Parsec Expected Type On Mar 28, 2008, at 21:12 , Ryan Ingram wrote:
On 3/28/08, Paul Keir
wrote: What I'd like is to parse either the string "parameter", or the string ":". I'm using 'reserved' and 'symbol' because they seem to correspond well to the concepts in the language I'm parsing. I could try,
tester3 = reserved "parameter" <|> do { symbol ":"; return () }
Or you could factor this behavior out into a new combinator:
or_ :: Parser a -> Parser b -> Parser () or_ x y = (x >> return ()) <|> (y >> return ())
tester3 = reserved "parameter" `or_` symbol ":"
Or if you'd like to be inscrutable: import Data.Function or_ = (>> return ()) `on` (<|>) -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH