在ghci中使用hoogle时如何使用hoogle命令行标记?
这显然不起作用:
ghci> :hoogle --count=5 Char -> Int
Could not read as type Int, "5 Char -> Int"
答案 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
。