"z_a...@163.com" <z_a...@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/


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to