【发布时间】:2019-10-20 02:19:41
【问题描述】:
我一直在使用 Haskell 完成一项学校作业,并且一遍又一遍地遇到相同的解析错误。我一直在网上寻找并没有解决我的问题。任何建议将不胜感激。这是函数...
maxGaussNorm :: [GaussianInt] -> GaussianInt
maxGaussNorm [] = (0,0)
maxGaussNorm gs = maxAux (tail gs) (head gs)
maxAux :: [GaussianInt] -> GaussianInt -> GaussianInt
maxAux gs m
| gs == [] = m
| (gaussNorm (head gs)) <= (gaussNorm m) = maxAux (tail gs) m
| (gaussNorm (head gs)) > (gaussNorm m) = maxAux (tail gs) (head gs)
【问题讨论】:
-
什么你遇到了解析错误?
GaussianInt是如何定义的? -
GaussianInt 被定义为类型 GaussianInt = (Integer,Integer),我不断得到的错误是 Assign_2.hs:90:18: error: parse error on input `=' 也许你需要一个'让'在'做'块?例如'让 x = 5' 而不是 'x = 5' | 90 | gs == [] = 米 | ^
-
这是整个文件吗?这部分代码没有给出解析错误。 Try it online!
-
@JestynStrik 不,标签也应该可以正常工作,您只需要避免将它们与可能导致不明显错误的空格混合在一起,所以这只是我对正确外观代码的第一次猜测。正如 Potato44 所说,请发帖minimal reproducible example
-
你之前评论中的错误信息说它发生在第 90 行。你能把第 90 行的内容连同它两边的几行上下文一起发布吗?
标签: haskell parse-error