Hack #211: Haskellでimportするモジュールや関数をその場で調べつつ入力する
Posted at 2011/04/06ツイート
問題
Haskellで、標準添付ライブラリを含むなんらかの外部モジュールを利用するためにはimport文を記述する必要があります。例えばData.ListモジュールのunionとunionByという関数を使用するためには、
import Data.List (union, unionBy)
と記述します。また、Data.Listの全ての関数をLという名前に限定してimportするには、import qualified ~ as文を使います。
import qualified Data.List as L
いずれにせよ、importするためには事前に
- importするモジュール名
- (必要に応じて) そのモジュールからimportする関数名
を知っておく必要があります。非常に面倒な作業です。
解決
eagletmtさんの開発した、neco-ghcというVimプラギンを導入します。
上記画像を見ていただければ、説明するまでもないでしょう。
import<space>
まで打鍵した時点で、自動でモジュールの一覧が補完候補に現れます。括弧を書くと、自動でそのモジュールの関数一覧が補完候補に現れます。これらの動作はかなり高速です。
また、importした関数が地の文で補完可能となります。このとき、どのモジュール由来の関数なのかも分かります。至れりつくせりです。
参考
Haskellのimport文についての仕様はHaskell 2010 Language Reportをご覧ください。なお、neco-ghcがこの仕様のすべてを満たしている保証はありませんが、問題を発見し次第github上でpull requestを送っていただけたりすると大変助かります。
ujihisaもどる
blog comments powered by Disqus