2013-06-15 7 views
8

Real World Haskell mówi: "Kompilator Haskella może nas ostrzec, jeśli wprowadzimy nazwę zmiennej we wzorcu, ale nie będziemy jej używać w ciele funkcji".Nieużywana zmienna ostrzeżenia w kodzie Haskella

Często zapominam używać zmiennych, które wiążę, więc chcę korzystać z tej funkcji. Ale moje ghci i ghc wydają się być w porządku z nieużywanymi zmiennymi, a ja nigdy tego nie widziałem, odkąd zacząłem uczyć się Haskella kilka miesięcy temu.

Jak korzystać z tej funkcji? Czy kompilator Haskell nie ma już tej funkcji?

Odpowiedz

9

Jak wspomniano wcześniej, dla wszystkich ostrzeżeń dostępna jest opcja -fwarn-unused-binds lub -Wall. Kolejna to -Werror, aby ostrzeżenia przerwały kompilację.

Aby z nich korzystać, należy przekazać je do ghc lub ghci w wierszu polecenia. Dodatkowo, w trakcie sesji w ghci można wpisać

:set -fwarn-unused-binds 

Z cabal można dodać ghc-options do sekcji wykonywalnego. Na przykład:

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

Teraz uruchomiony cabal configure && cabal build (i innych poleceń) użyje opcji -Wall.

+0

Dziękuję za odpowiedź! – Tengu

5

Możesz dodać flagę -fwarn-unused-binds do ghc lub ghci. Aby włączyć inne przydatne ostrzeżenia, użyj -W. Aby włączyć wszystkie ostrzeżenia, użyj -Wall. Na przykład:

ghci -fwarn-unused-binds 
+0

Dziękuję za odpowiedź. Wiem, jak dodać flagę podczas kompilacji z 'ghc', ale nie wiem jak to zrobić z' ghci'. Czy jest jakieś specjalne polecenie? – Tengu

+0

Rozpocznij 'ghci' za pomocą polecenia jak w moim przykładzie. Możesz również wpisać np. ': set -fwarn-unused-binds' w wierszu komend ghci. – dflemstr

6

Możesz spojrzeć na Warnings. Generalnie używam -Wall w moich projektach, które pokazują nieużywane zmienne bindowane wraz z kilkoma innymi przydatnymi ostrzeżeniami. Istnieje również specjalna flaga (-fwarn-unused-binds), aby zrobić to, co chcesz.

+0

Dziękuję bardzo za odpowiedź! – Tengu

Powiązane problemy