【发布时间】:2014-06-25 20:25:08
【问题描述】:
我目前正在学习 Haskell(最近我的很多问题都是从这个语句开始的)并且由于语法错误,我在编译程序时遇到了问题,主要是在识别错误、理解/解决 GHC 提供的错误消息方面。
例如,我花了很长时间才解决下面代码中的错误。请记住,这是取自一本 Haskell 教程书:
getNums = do
putStrLn "enter a number (0 to terminate)"
num <- getLine
if read num == 0
then return []
else do rest <- getNums
return ((read num :: Int):rest)
GHCI 输出错误消息也没有真正的帮助:
Number.hs:18:17:
The last statement in a 'do' block must be an expression
rest <- getNums
我目前正在通过 Linux 终端运行 GHCI 并手动编译,用 gedit 编写代码。我的问题是:
有没有更好的环境或设置可以为像我这样的初学者提供更深入的编译时错误解释?
即类似于 NetBeans IDE 提供关于为什么代码在语法上不正确的提示/提示的方式?
我最不想做的就是在 SO 上粘贴一个代码块,然后成为说“帮我解决这个问题”的白痴
编辑
我明白这可能不是一个很好的问题,因为它基本上是在询问人们的意见。
【问题讨论】:
-
我个人使用带有 SublimeHaskell 插件的 Sublime Text 3,但它可能有点学习曲线,并且有一些不平凡的设置,特别是对于初学者。如果您不介意使用在线 IDE,我建议您使用 FpComplete IDE。如果您想要一些命令行工具来帮助您编写代码,
hlint和stylish-haskell非常棒,并且可以通过 cabal 安装。就个人而言,即使我使用 SublimeHaskell,我也更喜欢通过终端编译和运行我的代码,因为我对执行流程有更直接的控制。 -
谢谢,我要去看看 gedit haskell 插件,也会尝试 sublime。肯定会看 hlint 和时尚哈斯克尔。它们听起来和我正在寻找的完全一样。