newtype Parser a = Parser { parse :: String -> Maybe (a,String) }
我有2个解析器:
1)a =(满足isAlpha),它知道如何匹配字符串中的第一个字母数字字符。
正在运行[[解析一个“ k345”
给出了<< [仅('k',“ 345”)`]2)b =很多(满足isDigit),知道如何匹配任意数量的数字。运行parse b“ 1234 abc”`给出Just(“ 1234”,“ abc”)
现在,我想将这2个字符组合在一起,并匹配一个单字母数字字符,后跟任意数量的数字。我尝试过:parse(a *> b)“ k1234 7”]
和got Just(“ 1234”,“ 7”)
。看起来与第一个解析器a匹配的“ k”已从输出中消失。我该如何解决这个问题?谢谢! newtype Parser a = Parser {parse :: String-> Maybe(a,String)}我有2个解析器:1)a =(satisfy isAlpha)知道如何匹配字符串中的第一个字母数字字符。解析...