你如何修复Haskell上输入“->”的解析错误?
下面的代码是我写的一个计算器。我正在尝试处理解析错误和令牌错误,但我一直在 ?s -> tokens s 上收到相同的错误,我该如何解决这个问题?为什么我一直收到这个错误?
{- main -}
main = do cs <- getContents
putStr $ unlines $ map show $
map (?s -> tokens s >= parse >= eval) $ lines cs
回答
这里的问题是一个微妙的问题。正确的语法是s -> tokens s >= parse >= eval,使用反斜杠:U+005C REVERSE SOLIDUS。但是,您的代码是?s -> tokens s >= parse >= eval. 这略有不同:它没有像预期的那样使用反斜杠,而是使用?U+2216 SET MINUS。只需使用正确的字符,替换?为,它就会正确解析。