하스켈 검색 엔진 Hoogle

구글(Google)과 유사한 발음의 Hoogle은 하스켈 API 검색 엔진입니다. API의 이름뿐만 아니라 타입으로도 검색할 수 있다는 점이 가장 큰 특징입니다.

예를 들어 (a -> b) -> [a] -> [b] 타입의 함수를 찾고 싶으면 검색 창에(a -> b) -> [a] -> [b]라고 입력해주면 됩니다. 그러면 Hoogle은 검색 결과로 PreludeData.List 모듈에 정의된 map 함수를 보여줍니다.

map :: (a -> b) -> [a] -> [b]

cabal-installhoogle 패키지를 설치하면 커맨드라인에서도 검색이 가능합니다.

$ 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]
 ...

One thought on “하스켈 검색 엔진 Hoogle

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s