从ghci用hoogle搜索时有没有办法使用标志?

时间:2014-02-09 13:51:25

标签: haskell ghci hoogle

在ghci中使用hoogle时如何使用hoogle命令行标记?

这显然不起作用:

ghci> :hoogle --count=5 Char -> Int
Could not read as type Int, "5 Char -> Int"

1 个答案:

答案 0 :(得分:7)

您需要更改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