구글(Google)과 유사한 발음의 Hoogle은 하스켈 API 검색 엔진입니다. API의 이름뿐만 아니라 타입으로도 검색할 수 있다는 점이 가장 큰 특징입니다.
예를 들어 (a -> b) -> [a] -> [b]
타입의 함수를 찾고 싶으면 검색 창에(a -> b) -> [a] -> [b]
라고 입력해주면 됩니다. 그러면 Hoogle은 검색 결과로 Prelude
와 Data.List
모듈에 정의된 map
함수를 보여줍니다.
map :: (a -> b) -> [a] -> [b]
cabal-install
로 hoogle
패키지를 설치하면 커맨드라인에서도 검색이 가능합니다.
$ cabal install hoogle
->
가 포함된 타입을 검색할 때는 검색어를 ""
로 묶어줍니다.
$ hoogle "(a -> b) -> [a] -> [b]"
Prelude map :: (a -> b) -> [a] -> [b]
Data.List map :: (a -> b) -> [a] -> [b]
...
~/.ghc/ghci.conf
파일에 다음 내용을 추가해주면 ghci
내에서도 검색이 가능합니다.
:def hoogle \s -> return $ ":! hoogle --count=15 \"" ++ s ++ "\""
ghci
에서 검색할 때는 :hoogle
뒤에 검색어를 입력하면 됩니다.
>:hoogle (a -> b) -> [a] -> [b]
Prelude map :: (a -> b) -> [a] -> [b]
Data.List map :: (a -> b) -> [a] -> [b]
...
Pingback: 하스켈 검색 엔진 Hoogle – 서광열의 하스켈 스쿨