我正在使用Haskell 2010.1.0.0.1和GHC 6.在GHCi提示符下鍵入:t
,然後顯示一個函數的名稱,顯示函數的類型。有沒有辦法查看函數定義?如何在Haskell/GHCi中查看函數的定義?
37
A
回答
31
當前不是。
你想要什麼最接近的命令是:info
:信息名稱...
顯示有關給定的姓名(或名稱)的信息。例如,如果name是一個類,那麼將打印類方法及其類型;如果name是一個類型構造函數,那麼它的定義將被打印;如果名稱是一個函數,那麼它的類型將被打印。如果名稱已從源文件加載,GHCi也將在源文件中顯示其定義的位置。
對於類型和類別,GHCi還總結了提及它們的實例。爲了避免顯示不相關的信息,僅當(a)其頭部提及名稱時顯示實例,以及(b)實例中提到的所有其他事物由於以下情況而處於範圍內(合格的或其他):模塊命令。
像這樣:
Prelude> :info ($)
($) :: (a -> b) -> a -> b -- Defined in GHC.Base
infixr 0 $
您可以但是,看到由黑線鱈工具生成,在Hackage標識符的來源。
注意? 「SRC」 是在lambdabot一個有效的命令,在#haskell IRC頻道,並做你所期望。
> ?src ($)
> f $ x = f x
4
我不這麼認爲。您可以使用:i
一點點的更多信息(中綴運營商和數據結構等更多有用的),但沒有定義:
ghci> :i repeat
repeat :: a -> [a] -- Defined in GHC.List
您可以使用hoogle快速找到一個標準庫函數的文檔,在右邊有一個鏈接去源。儘管如此,它仍然需要點擊幾下。
5
相關問題
- 1. 如何使matlab查看.m文件中定義的函數?
- 2. JavaScript函數沒有定義偏查看
- 3. 在PowerShell中查看嵌套的專用函數定義
- 4. 如何在elixir中查看所有模塊的導入和定義函數?
- 5. 如何檢查參數是否在JavaScript中的函數定義中定義?
- 6. 如何查看node.js中的函數體?
- 7. 如何查看DLL函數?
- 8. 如何查看函數值?
- 9. Android查看Nullpointer(類中的自定義函數)
- 10. 如何查找外部函數定義
- 11. 如何定義默認的快速查看器查看器
- 12. 如何通過自定義查詢結果在asp.net中查看
- 13. 如何在OpenCL中定義函數?
- 14. 如何在jQuery中定義函數?
- 15. 如何在LISP中定義LAMBDA函數?
- 16. 如何在.emacs中定義函數?
- 17. 如何在Leksah中定義用戶定義的函數?
- 18. 如何檢查函數的未定義參數? (在JavaScript)
- 19. 如何在CoffeeScript中新定義的函數上調用函數
- 20. 如何在cakephp中查看文件中的函數?
- 21. 如何在PHP中查看** all **當前定義的變量?
- 22. 如何在故事板中查看自定義UIView的輪廓?
- 23. 如何查看URL的語義數據?
- 24. 如何在jpa查詢中使用自定義函數?
- 25. 查看,存儲過程或表定義的函數
- 26. 有什麼方法可以在Chrome DevTools中查看用戶定義的函數?
- 27. 在WinDbg中查看函數參數
- 28. 如何在Clojure中的函數中定義函數並引用該函數?
- 29. Datagrid在自定義控件中查看
- 30. 如何查看函數在vim中被調用的地方?
非常感謝。我最近纔開始學習Haskell,並不知道lambdabot。這可以很好地作爲替代方案。 – 2011-04-26 08:00:24
@franco hades:我相信lambdabot也可以從Hackage本地安裝,所以你不需要在IRC上使用它(除非你想,#haskell是一個不錯的頻道)。 – 2011-04-26 13:46:10
非常酷 - 它也說你可以在ghci中嵌入lambdabot!然而,這些說明並不十分清楚。 – stites 2016-01-14 14:43:44