私はこれに似たタイプのものを探しています:
runQExpDynamically :: (GhcMonad m) => Q Exp -> m Dynamic
ドキュメント: GhcMonad、Q Exp、Dynamic、
2 つのコード例を組み合わせる方法を探しています。1 つはhaskell コードを動的に評価するためのもので、もう 1 つはテンプレート haskell を使用して動的に haskell を作成するためのものです。つまり、GhcMonad で Q Exp:resions を実行します。
私はこの問題に取り組み、ここに文書化する必要があります。
いくつかのアイデア
私が現在実行可能なアプローチは、式をシリアル化し、動的評価にフィードすることです。シリアライゼーションは Q モナド内で何らかの方法で行う必要があります。Exp がPpr prettyprinterクラスを実装していることを利用できるかもしれません。ただし、この方法で型の安全性を失う可能性がありますか? よりクリーンな (より衛生的な"?) 方法があるかもしれません。動的な値がどのように機能するかを理解するには、 Data.Dynamicをもう少し詳しく調べる必要があります。
編集:動的は値のみを表すことに気付きましたが、Q Exp の「宣言」を実行したいのです。動的コンテキストにデータ型を追加したいと考えています。