8

真实世界的 Haskell说“如果我们在模式中引入变量名,Haskell 编译器会警告我们,但不要在函数体中使用它”。

我经常忘记使用我绑定的变量,所以我想使用这个功能。但是我的 ghci 和 ghc 似乎对未使用的变量很好,而且自从我几个月前开始学习 Haskell 以来,我实际上从未见过这种情况。

如何使用此功能?还是 Haskell 编译器不再具有此功能?

4

3 回答 3

9

如前所述,选项是-fwarn-unused-binds-Wall所有警告。另一种是-Werror使警告停止编译。

要使用它们,请将它们传递给命令行ghcghci在命令行上。此外,在 ghci 会话期间,您可以键入

:set -fwarn-unused-binds

cabal您可以添加到ghc-options可执行部分。例如 :

executable my-program
  main-is:        MyProgram.hs
  hs-source-dirs: src
  ghc-options:    -Wall

现在,运行cabal configure && cabal build(和其他命令)将使用该-Wall选项。

于 2013-06-15T15:45:29.243 回答
6

您可以查看警告。我通常-Wall在我的项目中使用它显示未使用的绑定变量以及其他一些有用的警告。也有特定的标志 ( -fwarn-unused-binds) 可以做你想做的事。

于 2013-06-15T15:28:30.727 回答
5

您可以将-fwarn-unused-binds标志添加到ghcghci。要启用其他有用的警告,请使用-W. 要启用所有警告,请使用-Wall. 例如:

ghci -fwarn-unused-binds
于 2013-06-15T15:28:18.330 回答