我需要一种(快速且肮脏的)方式来获取以字符串形式给出的Haskell表达式类型的表示。
我目前看到3个选项:
我甚至不需要一个完整的解决方案,因为可以输入一个合理的Haskell基本子集的库/工具就足够了。
那么实现这一目标的最简单方法是什么?
答案 0 :(得分: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]