"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