我對Haskell相對較新,並試圖通過使用Yesod框架構建網站來獲得一些體驗。我現在面臨的最大的困難是我常常不確定一個函數需要什麼類型,或者另一個函數返回什麼類型。我也很難解釋我犯錯時產生的類型錯誤。如何獲得像Hasod這樣的Haskell框架中的類型的句柄
特別是,我希望能夠做以下事情,但我目前還不知道一個好辦法。
- 給出一個表達式,找出表達式的類型。通常我會用GHCi做這樣的事情,但據我所知,如果我想這樣做,我需要知道表達式的每個部分來自哪個包,我不知道該怎麼做。我還希望能夠檢查從模板Haskell生成的函數的類型,例如HomeR。有沒有辦法使用GHCi檢查出現在Yesod項目的.hs文件中的任意表達式的類型或評估值?
- 沿着上述相同的路線,給定一個類型或類出現在Yesod項目中的一些.hs文件中,得到它的定義?
- 給定一個Yesod函數或類型,快速找到它的文檔。我目前所做的是在Google上搜索給定的功能,但這有點令人討厭,因爲第一個結果並不總是文檔,或者有時候是舊版本。是否有快速查找Yesod文檔的有效方法?
你不應該需要知道哪些_package_的產品從GHCI使用它,您只需要知道要導入哪個_module_。 (當然,這不一定簡單得多......) – MathematicalOrchid
關於你的第一個問題:如果你使用Vim,請查看[vim-hdevtools](https://github.com/bitc/vim-hdevtools)。它允許您通過按下按鈕來查看任何子表達式的類型。非常有價值。 – kqr