【问题标题】:How to run HLint?如何运行 HLint?
【发布时间】:2014-11-27 20:48:18
【问题描述】:

我只有几周的时间来使用 Haskell 进行编程。有人告诉我使用 HLint 来改进我的代码。问题是我不知道如何对我的 .hs 文件运行 HLint。我阅读了the documentation 并且能够使用cabal install hlint 安装它。下一步是使用hlint myfile.hs 运行 HLint。我不知道我们在哪里输入这一行。 cmd 和 ghci 都不会让我运行该命令。我在这里错过了什么?

我正在使用 Windows。

编辑:

我刚刚删除了 Haskell 并在我的系统上重新安装了它。我认为问题出在我的 Haskell 安装上。这就是我尝试再次安装 HLint 时得到的结果:

文件确实存在于C:\Users\PCPCPCCP\AppData\Roaming\cabal\setup-exe-cache

edit2:

好像 hlint 没有正确安装。即使重新安装了 haskell 平台,我也无法在我的系统上安装 hlint。我确实在我的虚拟机上工作过......

【问题讨论】:

  • 您似乎在安装软件包时遇到了问题,而不是在特定的 HLint 上,所以我建议您从最简单的可执行文件开始,然后先让它工作。特别是,我建议您安装 hello 软件包(非常简单),看看是否可行。

标签: haskell hlint


【解决方案1】:

只需在 Haskell 文件之上运行它:

hlint filename.hs

您必须从 Linux 的终端或 Windows 的 PowerShell/CMD.exe 运行它。

我的电脑上的示例演示:

$ hlint gem.hs
gem.hs:9:9: Warning: Use void
Found:
  print "if" >> return ()
Why not:
  void (print "if")

gem.hs:10:9: Warning: Use void
Found:
  print "else" >> return ()
Why not:
  void (print "else")

2 suggestions

【讨论】:

  • 我还是不明白。所以我的 haskell 程序有一个名为 t.hs 的文件。我可以毫无问题地打开 CMD 并运行该程序。现在你想让我在我的 t.hs 文件顶部添加行 $ hlint t.hs 然后像以前一样从 CMD 运行?我收到输入“$”时出现解析错误也许您打算使用 TemplateHaskell
  • @isADon:在 CMD 窗口中,键入 hlint t.hs。美元符号只是为了表示命令提示符,您实际上并没有在任何地方键入它。如果您尝试这样做,它会报错吗?
  • 是的,我知道命令“hlint”拼写错误或找不到(翻译自德语)
  • @isADon 我认为hlint 不在您的路径中。查找可执行文件所在的位置并将该位置放在 PATH 环境变量下。有关详细信息,请参阅此link
  • 我认为我的 haskell 安装有问题。请在我的问题中查看我的编辑。
【解决方案2】:

我就是这样运行的

hlint src/

其中“src/”是在我的 .cabal 文件中的 hs-source-dirs: 行中定义的目录。

【讨论】:

    【解决方案3】:

    您需要将 cabal 的文件夹导出,该文件夹在您的环境变量 PATH 中存储所有已安装的二进制文件,即,

    export PATH="$PATH:$HOME/.cabal/bin/"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多