7

目前,我正在尝试从 Haskell 子集进行翻译,而无需处理所有解析、类型检查等问题。文档并没有帮助我找出一个函数来通过其名称获取函数的主体(所有定义)。

此调用的上下文应类似于

fac 0 = 1
fac x = z * fac (x - 1)

getBody = ...

main = do
    x <- runQ $ getBody [| fac |]
    print x

有谁知道

  1. TH 上是否有一些好的和最新的文档(不是 Hackage 上的参考)或
  2. 如何制作getBody?
4

1 回答 1

10

通常,使用 TH 查找某事物定义的方法是使用reify函数。然而:

看来您需要另寻路线。您是否考虑过使用haskell-src-exts进行解析和/或 GHC API 或基于它的东西?

于 2012-12-21T02:44:21.480 回答