[Haskell-cafe] Re: what's the definition of "satisfy" and "<?>" ?
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
nightmare = unsafePerformIO (getWrongWife >>= sex)
More information about the Haskell-Cafe