12

別の関数内の関数について推論した型について ghci を照会することは可能ですか?

4

3 に答える 3

22

これは簡単で醜いハックですが、私が通常行うことは、関数を間違った方法で使用し、エラー メッセージを読むことです。

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 に答える