Haskell 如何使用GHCI查找子函数的类型

Haskell 如何使用GHCI查找子函数的类型,haskell,types,ghci,Haskell,Types,Ghci,是否可以通过GHCI找到where语句中定义的函数类型 例如,考虑到该功能: myFunction a b c = case result of 2 -> ... where subFunctA = ... _ -> ...

是否可以通过GHCI找到
where
语句中定义的函数类型

例如,考虑到该功能:

myFunction a b c = case result of
                     2 -> ...
                            where
                                  subFunctA = ...
                     _ -> ...
                            where
                                  subFunctB = ...
                                  subFunctC = ...
myFunction
的类型可以通过
:t myFunction
找到


是否可以通过GHCI找到
子基金
子基金
子基金
的类型?
否。GHCI无权访问其功能的来源。即使您自己在GHCi或源文件中定义了函数,这也是正确的

另一种选择是:由于您可以访问您想知道的函数的源,因此可以将函数复制到源文件的全局范围中,编译它们,并查看GHC分配给它们的类型。我经常这样做。(此外,您可以直接将它们粘贴到GHCi中。)完成此操作后,您可以根据需要对它们调用:t。这可能会产生比实际子函数更通用的类型,但它仍然可以帮助您。

如果您有足够新版本的GHCi,您可以尝试使用

基本上,如果在代码中写入下划线,编译器将弹出一条错误消息,告诉您该子表达式应具有的类型。在您的示例中,只需将“
”替换为“