在Haskell代码中警告未使用的变量

Ten*_*ngu 8 haskell

真实世界Haskell说:"如果我们在模式中引入变量名称,Haskell编译器可以警告我们,但不要在函数体中使用它".

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

我该如何使用此功能?或者Haskell编译器不再具有此功能了?

tho*_*ron 9

正如前面所说的,选择是-fwarn-unused-binds-Wall所有警告.另一个是-Werror使警告停止编译.

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

:set -fwarn-unused-binds
Run Code Online (Sandbox Code Playgroud)

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

executable my-program
  main-is:        MyProgram.hs
  hs-source-dirs: src
  ghc-options:    -Wall
Run Code Online (Sandbox Code Playgroud)

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


Sat*_*vik 6

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


dfl*_*str 5

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

ghci -fwarn-unused-binds
Run Code Online (Sandbox Code Playgroud)