2014-04-20 36 views
4

當我學習不熟悉的Haskell代碼時,有時會遇到在別處定義的類型和數據構造函數。我會試着查看我的代碼並搜索Hoogle,這有時會導致一個快速解釋,但通常是不成熟的。Haskell:快速追蹤外部程序包的類型或數據構造函數定義

例如,我花了一個小時嘗試確定對Yesod代碼庫中名爲Object的數據類型的引用,最後發現它是在Data.Yaml包中定義的。

有沒有辦法使用GHCi快速追蹤其定義的符號引用?也許在解釋器中加載相同的模塊並在名稱空間中搜索未識別的類型構造函數或符號引用?

+4

在ghci中加載文件後,在ghci中使用':'Typename'。 – Sibi

+1

@Sibi這正是我需要的!謝謝。我試過了,我會一直使用它。我真的需要坐下來閱讀ghci手冊。 –

回答

0

如果你可以在ghci中加載代碼,只需運行:i symbol(其中符號可以是一個類型或值),它會告訴你它在哪裏定義,以及在哪裏定義類實例。

如果您無法在ghci中加載代碼,那麼您可能可以使用hoogle來查找它。我建議安裝hoogle搜索插件,並給它一個非常簡短的關鍵字,如「h」。然後你可以輸入「h符號」來獲得它的文檔鏈接(這也將帶你到源文件)。

相關問題