我试过谷歌搜索但是做得很短.我通过阅读一些文章来进一步提高我的Haskell知识,并且我遇到了一个使用我以前从未见过的语法的文章.一个例子是:
reconstruct node@(Node a b c l r) parent@(Node b d le ri)
Run Code Online (Sandbox Code Playgroud)
我以前从未见过这些@.我试着在网上寻找答案但是很短暂.这只是一种嵌入标签以帮助使事情更清晰,或者它们对代码产生实际影响的方法吗?
我的函数将Maybe Int列表作为其参数.如果元素= Nothing它应该打印一个.如果元素是Just Int,它将打印数字.我以为我已经捕获了一个基础但我认为我没有得到正确的一个..我得到一个非详尽的模式错误.
replaceValue :: [Maybe Int] -> String
replaceValue (x:xs)
| (x:xs) == [] = []
| isNothing x == True = '.':replaceValue xs
| isJust x == True = intToDigit(fromJust x):(replaceValue xs)
Run Code Online (Sandbox Code Playgroud)
向正确的方向点头将受到高度赞赏!:-)
第7行,在_.我不知道可能是什么问题.有小费吗?
term :: Parser Expr
term s1 = case factor s1 of
Just (a, s2) -> case s2 of
'*':s3 -> case term s3 of
Just (b, s4) -> Just (Mul a b, s4)
Nothing -> Just (a, s2)
_ -> Just (a, s2)
Nothing -> Nothing
Run Code Online (Sandbox Code Playgroud)
我正在尝试将字符串解析为Expr(自制数据类型).我认为这是我们应该怎么做但我无法测试它,因为我无法正确编译它.GHCI和Ghc墙给了我同样的错误.在该特定点解析错误.
我的代码比这大,但这是相关的代码片段.
编辑:代码贴在这里,抱歉.