我正在寻找类似于此类型的东西:
runQExpDynamically :: (GhcMonad m) => Q Exp -> m Dynamic
我正在寻找结合我的两个代码示例的方法;一个用于dynamically evaluating haskell code,另一个用于composing haskell dynamically using template haskell。换句话说,在GhcMonad中运行Q Exp:ressions。
我会解决这个问题,我应该在这里记录。
我目前认为可行的方法是序列化表达式并将其提供给动态评估。序列化必须以某种方式在Q monad内完成。我或许可以使用Exp实现Ppr prettyprinter类。但是,我可能会这样放松一些类型的安全吗?可能有一种更干净(更卫生的“?)方式。我应该更多地了解Data.Dynamic以了解动态值的工作原理。
编辑我现在意识到Dynamic只代表值,而我想运行Q Exp'声明'。我想将数据类型添加到动态上下文中。