J'ai une question sur le refactoring Parsec code pour utiliser l'interface Applicative
. Supposons que j'ai un analyseur en utilisant l'interface monadique comme ceci:Utilisation de la notation Applicative pour les analyseurs dont le résultat est ignoré
filePath0 :: GenParser Char st Info
filePath0 = do
optional (string "./")
r <- artist
slash
l <- album
slash
t <- track
return $ Song r l t
Je voudrais en faire quelque chose comme ceci:
filePath :: GenParser Char st Info
filePath = Song <$> artist <*> album <*> track
Mais comme vous pouvez le voir est pas complète. Ma question: où, dans cette version refactorisée, j'insérerais optional (string "./")
et slash
parseurs?
Vous pouvez également utiliser '<$ :: Functor f => a -> fb -> fa' garder "la sémantique" à l'extrême gauche. – pigworker