instance Applicative Parser where pure a = Parser $ \s -> [(a, s)] (Parser ps) <*> (Parser qs) = Parser $ \s -> [ (f a, t) | (f, s') <- ps s , (a,t) <- qs s' ] instance Alternative Parser where empty = Parser $ const [] (Parser ps) <|> (Parser qs) = Parser $ (++) <$> ps <*> qs
no subject
Date: 2016-11-06 01:49 pm (UTC)