Haskellのリファレンスマニュアルを検索するツール href
新しいことを勉強したり、分からないことを調べる時、マニュアルは重要です。
hrefは、ふつうのHaskellプログラミングの著者の青木さんの作られたHaskellのリファレンスマニュアルを検索するツールです。
使い方
hrefの使い方は以下の通り
引数なしだとドキュメントの存在するモジュールを表示します。
$ href Control.Exception Control.Monad Data.Char Data.List Data.Maybe Data.Tuple Debug.Trace Prelude System.Directory System.Environment System.IO Text.ParserCombinators.Parsec.Char Text.ParserCombinators.Parsec.Combinator Text.Regex
引数が一つのときは、先頭が大文字ならモジュール、小文字なら関数とみなして補完検索します。
$ href drop Prelude.drop drop :: Int -> [b] -> [b] drop n xs リスト xs の最初の (最大) n 要素を除いたリストを返す。 see also: take, takeWhile, dropWhile, splitAt drop 3 [1,2,3,4,5] = [4,5] drop 3 [1,2,3,4] = [4] drop 3 [1,2,3] = [] drop 3 [1,2] = [] drop 3 [] = [] drop 2 [1,2,3] = [3] drop 1 [1,2,3] = [2,3] drop 0 [1,2,3] = [1,2,3] drop (-1) [1,2,3] = [1,2,3]
引数が二つのときはモジュール名と関数名だとみなします。
$ href data.l isp Data.List.isPrefixOf isPrefixOf :: (Eq a) => [a] -> [a] -> Bool isPrefixOf xs ys xs が ys の先頭と一致するならば True。 isPrefixOf [1,2] [1,2,3,4] = True isPrefixOf "abc" "abcdefg" = True isPrefixOf "abcdefg" "abc" = False isPrefixOf "" "string" = True isPrefixOf "string" "" = False isPrefixOf "" "" = True
インストール
インストールは、README.jaに書いてある通りに行えば行えますが、文字コードがISO-2022-JPとEUC*1なので、Mac等UTF-8の環境で使う場合は変換が必要です。
Macでのインストール手順例を以下に示します。
$ wget http://i.loveruby.net/archive/href/href-0.3.3.tar.gz $ tar xzf href-0.3.3.tar.gz $ cd href-0.3.3 $ make $ mkdir -p /usr/local/share/href $ mkdir ref-utf8 $ cd ref $ for i in *; do nkf --utf8 $i > ../ref-utf8/$i; done $ cd .. $ sudo su # export HREF_DATADIR=/usr/local/share/href # make bindir=/usr/local/bin install # mkhref ref-utf8/*
あとは.bash_profileにHREF_DATADIRをexportするように書いておきます。
そんな感じです。
*1:Control.ExceptionがISO-2022-JPで、Control.MonadがEUCだったりと、なぜか統一されていない謎仕様。変換にnkfを使うのはiconvだとうまく自動認識してくれない為