12

是否可以在 ghci 中查询它为另一个函数中的函数推断的类型?

4

3 回答 3

22

这是一个快速而丑陋的 hack,但我通常做的只是以错误的方式使用该功能并阅读错误消息:

inc x = x + 1
  where
    f (y, z) = y + z
    g = f :: Char

GHCi 输出:

Couldn't match expected type `Char'
       against inferred type `(t, t) -> t'
In the expression: f :: Char

尽管这忽略了上下文Num t =>,但这通常确实为我提供了足够的信息来继续。

于 2010-01-24T20:46:11.513 回答
12

您可以尝试通过在其上设置断点来执行此操作,因此该函数在调试器的范围内。

此外,我认为 EclipseFP 可以在您将鼠标悬停在事物上时告诉您事物的类型,至少在某些时候是这样。

于 2010-01-24T20:31:23.567 回答
7

使用 GHC 7.8+,只需附加`asTypeOf` _到表达式。

有关详细说明,请参阅找出带有类型孔的表达式/函数的类型

于 2014-03-13T14:46:48.623 回答