Haskell で hlint を使用したコードチェック
Haskell のコードチェックを行う hlint というツールを試してみました。
[hlint のインストール]
$ cabal install happy $ cabal install haskell-src-exts $ cabal install hlint
cabal を使ってサクッとインストール。
[テストコード]
-- main.hs main = do print $ plus 1 2 print $ plus3 4 where plus = \a b -> a + b plus3 = \x -> plus 3 x
[出力]
$ hlint main.hs D:\test\main.hs:28:17: Error: Redundant lambda Found: plus = \ a b -> a + b Why not: plus a b = a + b D:\test\main.hs:28:24: Warning: Avoid lambda Found: \ a b -> a + b Why not: (+) D:\test\main.hs:29:17: Error: Redundant lambda Found: plus3 = \ x -> plus 3 x Why not: plus3 x = plus 3 x D:\test\main.hs:29:25: Warning: Avoid lambda Found: \ x -> plus 3 x Why not: plus 3 4 suggestions
こんな感じで問題になっている箇所を警告し、更に解決方法まで教えてくれます。
頭がいいですね。
面白そうなので watchdogs.vim にも定義を書いておこう。