[Haskell-cafe] Re: what's the definition of "satisfy" and "<?>" ?

Ertugrul Soeylemez es at ertes.de
Thu May 21 02:55:37 EDT 2009


"z_axis at 163.com" <z_axis at 163.com> wrote:

> I cannot understand the following code very well as i donot know the
> definition of "satisfy" and "<?>".

Yes.  Just look at the Parsec documentation, preferably Parsec 3,
because Parsec versions prior to 3 were not well documented.


> -- | Case-insensitive variant of Parsec's 'char' function.
> caseChar        :: Char -> GenParser Char a Char
> caseChar c       = satisfy (\x -> toUpper x == toUpper c)
>
> -- | Case-insensitive variant of Parsec's 'string' function.
> caseString      :: String -> GenParser Char a ()
> caseString cs    = mapM_ caseChar cs <?> cs

This code looks incorrect to me.  It should read:

  caseString :: String -> GenParser Char a ()
  caseString cs = Parsec.try (mapM_ caseChar cs) <?> cs


Greets,
Ertugrul.


-- 
nightmare = unsafePerformIO (getWrongWife >>= sex)
http://blog.ertes.de/




More information about the Haskell-Cafe mailing list