2013-05-04 3 views
10

文字列として与えられたHaskell式の型の表現を取得するには、(素早く汚い)方法が必要です。しかし、ドキュメントはかなり迅速に私を失う -Haskell式を含む文字列の推定型

  • 使用GHCのAPI:

    は、私は現在、3つのオプションを参照してください。

  • 他のタイプの推論ツールを使用する - 私はhaskell-type-extsを試してみることを提案されていますが、最も単純な表現以外のすべてのタイプを入力することはできません。私は他のどのようなツールも知らない。
  • ロール自分のHMのinferer - 私は私もの合理的な基本的なサブセットを入力することができ、ライブラリ/ツールという意味で、完全なソリューションを必要としない、絶対に必要

なければ、これを回避したいですハスケルは私のために十分です。

これを達成する最も簡単な方法は何ですか?

+0

を印刷しますが([他のHaskellの実装]を見てくださいhttp://www.haskell.org/haskellwiki/Implementationsは、 ) - それらのうちのいくつかは、GHCよりも使いやすくすることができます。 –

+2

あなたが自分自身を書く場合、Mark P. Jonesの[THIH](http://web.cecs.pdx.edu/~mpj/thih/)が良いスタートかもしれません。 –

答えて

17

hint packageは、幾分制限されていますが、おそらくGHC APIへの理解しやすいインターフェースを提供します。おそらくそれはあなたの目的には十分でしょうか?そうでない場合は、ソースを見てGHC APIを直接使用する方法を知ることができます。

ここでは例のプログラムです:

import Language.Haskell.Interpreter 

main :: IO() 
main = do 
    r <- runInterpreter $ do 
    setImports ["Prelude"] 
    typeOf "map (+1)" 
    either print putStrLn r 

実行した場合、これは

Num b => [b] -> [b] 
+0

これは素晴らしいものです、ありがとう! – xcvii

関連する問題