真实世界的 Haskell说“如果我们在模式中引入变量名,Haskell 编译器会警告我们,但不要在函数体中使用它”。
我经常忘记使用我绑定的变量,所以我想使用这个功能。但是我的 ghci 和 ghc 似乎对未使用的变量很好,而且自从我几个月前开始学习 Haskell 以来,我实际上从未见过这种情况。
如何使用此功能?还是 Haskell 编译器不再具有此功能?
真实世界的 Haskell说“如果我们在模式中引入变量名,Haskell 编译器会警告我们,但不要在函数体中使用它”。
我经常忘记使用我绑定的变量,所以我想使用这个功能。但是我的 ghci 和 ghc 似乎对未使用的变量很好,而且自从我几个月前开始学习 Haskell 以来,我实际上从未见过这种情况。
如何使用此功能?还是 Haskell 编译器不再具有此功能?
如前所述,选项是-fwarn-unused-binds
或-Wall
所有警告。另一种是-Werror
使警告停止编译。
要使用它们,请将它们传递给命令行ghc
或ghci
在命令行上。此外,在 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
选项。
您可以查看警告。我通常-Wall
在我的项目中使用它显示未使用的绑定变量以及其他一些有用的警告。也有特定的标志 ( -fwarn-unused-binds
) 可以做你想做的事。
您可以将-fwarn-unused-binds
标志添加到ghc
或ghci
。要启用其他有用的警告,请使用-W
. 要启用所有警告,请使用-Wall
. 例如:
ghci -fwarn-unused-binds