【发布时间】:2012-02-11 11:14:09
【问题描述】:
我们可以使用 GHC API 或其他东西来加载不是文本源模块,而是 AST 表达式,类似于haskell-src-exts Exp type?这样我们可以节省代码生成和解析的时间。
【问题讨论】:
标签: haskell dynamic-loading ghc-api
我们可以使用 GHC API 或其他东西来加载不是文本源模块,而是 AST 表达式,类似于haskell-src-exts Exp type?这样我们可以节省代码生成和解析的时间。
【问题讨论】:
标签: haskell dynamic-loading ghc-api
我不认为 GHC API 公开了 AST 接口(虽然可能是错误的),但 Template Haskell 可以。如果您使用Language.Haskell.TH Exp 结构构建表达式,您可以创建函数/声明并通过$(someTHFunction) 语法使用它们。
一个相当重要的警告是 TH 仅在编译时运行,因此您需要预先生成所有内容。如果你想在运行时使用 TH,我认为你需要漂亮地打印模板 haskell AST,然后在结果字符串上使用 GHC API。
【讨论】: