問題タブ [template-haskell]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - GHC -ddump-splices オプション — テンプレート Haskell
私はYesodの本に従っています:
しかし、-ddump-splices GHC オプションを使用すると、生成されたコードをすぐに見ることができます。それの大幅にクリーンアップされたバージョンは次のとおりです。
どうすればいいですか?ファイルを でコンパイルしようとしましghc -XTemplateHaskell -ddump-splices Page.hs
たが、ディレクトリは次のようになります。
Page Page.hi Page.hs Page.hs~ Page.o
ただし、これらのファイルには、テンプレート Haskell によって生成された中間コードは含まれていません。
haskell - コンパイル中のファイルに関連するファイルで TemplateHaskell の addDependentFile を使用するにはどうすればよいですか?
IO を使用し、ファイルに依存する TemplateHaskell 式が、MyDependency.txt
そのファイルが変更されたときに再計算されるようにします。
したがってaddDependentFile "MyDependency.txt"
、コードをコンパイルするときにそのファイルの変更をチェックするように ghc に指示するために使用しています。
addDependentFile
残念ながら、 ghc が呼び出されたディレクトリに対してのみ動作するため、これは動作しません。
コンパイルしているファイルのすぐ隣(同じディレクトリ内) にあるファイルに依存するためにどのように使用できますか?
haskell - テンプレート Haskell: GHC ステージの制限とその克服方法
モジュールに次のコードがあります。
そして、メインファイルに次のものがあります。
$(findx three)
に作成してもらいたいのですがfindThree = findName "Three"
。しかし、代わりに、次のエラーが発生します。
どうすればこれを克服できますか?one
、two
などを別のファイルで定義する必要はありません。
2番目の質問は、なぜ$(findx (Alpha "Four" 4))
問題なく動作するのですか?
haskell - Template Haskell を使用して生成されたコードから非 TH パッケージを作成するには?
タプルのラッパーを定義し、それらからインスタンスを追加する小さなパッケージを作成しています。
これが 2 から15まで繰り返されるので、Template Haskell の仕事のように見えます。
生成されるコードは常に Haskell 98 互換なので、最終結果も Haskell 98 互換のパッケージにしたいと考えています。Template Haskell を使用してコードを生成し、それから TH 自体を使用しないパッケージを作成することは可能ですか? (可能であれば、自動化された方法が望ましいです。)