我正在寻找一种方法来编译一个字符串的一个有效的Haskell表达式代码到一个TH的Exp
。
例如,如果存在一个适当的函数,我希望它的行为如下:
> $(theFunctionImLookingFor "\a -> a + 1") 2
3
我已经为[e|..|]
的底层QuasiQuoter
寻找了quoteExp :: String -> Q Exp
的实现,但它似乎很神奇,而且没有。
我正在寻找一种方法来编译一个字符串的一个有效的Haskell表达式代码到一个TH的Exp
。
例如,如果存在一个适当的函数,我希望它的行为如下:
> $(theFunctionImLookingFor "\a -> a + 1") 2
3
我已经为[e|..|]
的底层QuasiQuoter
寻找了quoteExp :: String -> Q Exp
的实现,但它似乎很神奇,而且没有。
1条答案
按热度按时间ijnw1ujt1#
您要查找的函数是
parseExp
,它来自haskell-src-meta
package中的Language.Haskell.Meta.Parse
module。