2014-02-09 1 views

ответ

6

Вы должны изменить свой ghci.conf для того, чтобы сделать это. Предполагая, что вы сделали steps described on haskell.org, ваш ghci.conf содержит строку, как

:def hoogle \x -> return $ ":!hoogle \"" ++ x ++ "\"" 

Однако, эта линия говорит, что :hoogle x будет переведен на hoogle "x", которые, очевидно, не будет работать, если вы хотите применить дополнительные флаги, такие как --count=5.

Вам либо нужно удалить цитаты вокруг аргумента, например.

:def hoogleP \x -> return $ ":!hoogle " ++ x 

и использовать :hoogleP --count=5 "Char -> Int" или разделить аргумент вручную в счета и поисковый запрос:

:def hoogleC \x -> return $ ":!hoogle --count="++(head.words $x)++" \"" ++ (unwords.tail.words $x) ++ "\"" 

Последняя версия может быть использована в качестве :hoogleC 5 Char -> Int.

+0

Если hoogleC будет использовать 'unwords' вместо' concat', этого не произойдет: 'GHCI>: hoogleC 1 Может быть, -> а Предупреждение: Неизвестный тип Maybea Unsafe.Coerce unsafeCoerce :: а -> б ' – sjakobi

+1

@simon: Хорошая добыча! – Zeta

+0

Спасибо, что написали свой ответ и обновили его! Это супер полезно! – sjakobi