2017-05-02 11 views
0

J'ai un cours qui me demande d'écrire une nouvelle fonction parse :: String -> Stm. Parsec a déjà une fonction d'analyse, donc je suis supposé importer un parsec qualifié pour que l'analyse retourne ma fonction wrapper. La fonction wrapper doit analyser la chaîne d'entrée à la fonction d'analyse de Parsec et décompresser le résultat de la monade renvoyée. C'est le code pour ma fonction wrapper. Comment puis-je m'assurer que lorsque parse est appelée, elle renvoie ma fonction wrapper.Utilisez Parsec pour écrire une nouvelle fonction "parse :: String -> Stm"

parseString :: String -> Stm 
parseString str = 
    case parse procParser "" str of 
    Left e -> error $ show e 
    Right r -> r 
+0

Pourriez-vous préciser ce que vous entendez par « quand Parse est appelé »? – leftaroundabout

Répondre

0

faire exactement ce que disent les instructions:

import qualified Text.Parsec 

parse :: String -> Stm 
parse str = 
    case Text.Parsec.parse procParser "" str of 
    Left e -> error $ show e 
    Right r -> r