如何在Haskell中查看模块的函数实现代码?

7

我是Haskell的新手,我知道Haskell标准库被分为模块,每个模块包含一些相关的函数类型,并且拥有共同的用途。我想查看这些库函数的实现(代码)。我可以在哪里看到?是否有任何命令在ghci中可以查看实现或提供任何关于模块学习的资源。 谢谢


2
从Hackage上查看。例如,这是Data.Vector包。每个函数、实例或数据定义的说明都包括相应行最右边的#source链接。 - Redu
1个回答

5

最方便的方法是使用Hackage。例如,您可以通过单击函数签名右侧的Source来查看map函数。这将显示突出显示的代码片段。例如:

map :: (a -> b) -> [a] -> [b]
{-# NOINLINE [0] map #-}
  -- We want the RULEs "map" and "map/coerce" to fire first.
  -- map is recursive, so won't inline anyway,
  -- but saying so is more explicit, and silences warnings
map _ []     = []
map f (x:xs) = f x : map f xs
您还可以使用Hoogle按名称或签名搜索函数,并通过单击结果,将重定向到相关的hackage页面。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接