1

很长一段时间以来,我一直在第四行收到此错误:声明中的语法错误(意外的';',可能是由于布局错误)在以下代码片段中:

import Data.Maybe    

leesIngrediënten:: Int->[[Char]]->[Int]->[Maybe [Char]]->[[Char]]->([Int], [Maybe [Char]], [[Char]])
leesIngrediënten 0 _ hoevs eenhs naams = (hoevs, eenhs, naams)
leesIngrediënten n (line:lines) hoevs eenhs naams =
                 let 
                     (hoev, eenh, naam) = leesLijn line
                     in  
                       leesIngrediënten (n-1) lines (hoev:hoevs) (eenh:eenhs) (naam:naams)

在互联网上搜索后,我发现了错误的含义,但关键是我没有看到我的错误。(可能是因为我写了代码)

奇怪的是,Hugs 是抱怨 GHCi 没有什么可抱怨的。

提前致谢!

4

2 回答 2

5

根据https://www.haskell.org/hugs/pages/users_guide/haskell98.html,Hugs 不支持 Unicode 标识符。这可能会导致语法错误。

于 2015-01-13T12:37:22.993 回答
0

看起来问题确实与 Unicode 标识符有关。当我运行你的代码时,我得到

3:12: lexical error (UTF-8 decoding error)

但重要的是该文件是否已编译。如果它是一个exe,不要使用runhaskell。这也可能导致问题。对未来的一点提示,当您在单词和标点符号之间使用更多空格时,您的代码更容易阅读。

于 2015-01-14T07:29:48.957 回答