2013-06-15 12 views
8

Real World Haskellは、「Haskellコンパイラはパターンに変数名を導入しても関数の本体では使用しないと警告する」と述べています。Haskellコードの未使用変数の警告

私はしばしばバインドする変数を使用することを忘れています。この機能を使いたいと思います。しかし、私のghciとghcは未使用の変数でうまくいくように見えますが、数ヶ月前にハスケルを学び始めて以来、これを見たことはありません。

どうすればこの機能を使用できますか?または、Haskellコンパイラにこの機能がもうありませんか?

答えて

9

前述のように、オプションはすべての警告に対して-fwarn-unused-bindsまたは-Wallです。もう1つは、警告をコンパイルを停止させるために-Werrorです。

これらを使用するには、コマンドラインでghcまたはghciに渡します。また、GHCiの中のセッション中に、あなたが実行可能セクションにghc-optionsを追加することができますcabal

:set -fwarn-unused-binds 

を入力することができます。例えば:今すぐ

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

cabal configure && cabal buildを実行している(と他のコマンド)-Wallオプションを使用します。

+0

あなたの答えをありがとう! – Tengu

5

-fwarn-unused-bindsフラグをghcまたはghciに追加できます。他の有用な警告を有効にするには、-Wを使用してください。すべての警告を有効にするには、-Wallを使用してください。例:

ghci -fwarn-unused-binds 
+0

ありがとうございました。私は 'ghc'でコンパイルするときにフラグを追加する方法を知っていますが、' ghci'を使ってコンパイルする方法はわかりません。特定のコマンドはありますか? – Tengu

+0

私の例のようにコマンドで 'ghci'を起動してください。たとえば、次のように入力することもできます':set -fwarn-unused-binds'をghciコマンドラインで実行します。 – dflemstr

6

Warningsから見ることができます。私は通常、私のプロジェクトでは、使用されていないバインドされた変数といくつかの他の有用な警告を示す-Wallを使用します。あなたが望むだけのことをする特定のフラグ(-fwarn-unused-binds)もあります。

+0

ありがとうございました! – Tengu

関連する問題