template-haskell

    3

    1答えて

    何かのためにDSumを使用したいと思います。 DSumを使用するには、1つの型引数をとる 'タグ'型が必要です。 data Tag a where AFirst :: Tag Int ASecond :: Tag String しかし、これをライブラリで内部的に使用したいと思います。私はユーザーに古いデータ型を取ることを暴露するインターフェースを望んでいます。 data S

    1

    1答えて

    私はTemplate Haskellにとって適切な場所であると思っていた興味深い問題に遭遇しました。私は、yesodとyesod-persistantを使用してデータベースにWebフロントエンドを取り組んでいます。私はmkPerist関数とpersistLowerCase準引用符を使って自分のデータベース型を生成しています。 私の問題は、データベースのフィールドを編集する方法が必要ですが、列ごとに

    4

    1答えて

    ほとんどの場合、レコードを作成するたびに、すぐにmakeLenses ''Record(lens)を追加しています。実際にレコードが与える投影関数を使用することはありません。実際には、makeLensesが(GHC -ddump-splicesフラグ付きで)何を生成しているかを見ると、生成するレンズの名前を選択する以外は、それらの投影関数を使用していないように見えます。 TemplateHaske

    0

    1答えて

    からState.modifyを使用すると、それはプログラムの骨格のみです。 「 foldlWithKey' (\list' key' val' -> if (...) then (Control.Monad.State.modify $ (Prelude.++) [elem]) >> some code :

    6

    1答えて

    テンプレートのhaskellスプライスを作成していますが、正しい種類のNameを生成しようとしています。既知の名前(例えば、関数f)を生成する場合は、'fを使用できます。これはfが私がスプライスを定義している範囲である必要があります。どこで使われているのではなく、私が欲しいものです。 私は同じことが欲しいが、動的な名前が必要だ。たとえば、私のスプライスが引数としてn :: Intを取るとします。

    4

    1答えて

    私はHaTeXの上にeDSLを構築しています。私が直面している問題は、LaTeXドキュメントにHaskell式を表示したいのと同じHaskell式を使ってドキュメントを生成したいということです。 明らかな答えは、式をコピーして貼り付けて、引用符とライブの両方に表示されるようにすることです。表現が変わることがあるので、私はそれを避けたいです。 私が想像しているのは、その内容をそのままスプライスし、そ

    0

    1答えて

    で型推論を理解すること、我々は型シグネチャf :: a -> aでいくつかの機能fを持っている場合は、Haskellは、次の種類を推測することができます知っている: f "alpha"はタイプ[Char]を持つことになります。 f 1234が持つタイプNum a => a f Justはそうでタイプa -> Maybe a を持っているでしょう。以下のコードを参照する 、機能result_sm :

    3

    1答えて

    私は、型情報をHaskellの価値レベルに持っていく方法を模索しています。 どのタイプ情報を値として表すかを知っている1つの方法は、Language.Haskell.TH.Typeです。 Proxy aを受け取り、次のようにaタイプのLanguage.Haskell.TH.Type(または任意のタイプを表す代替タイプ)を返す関数を実装する方法はありますか? タイプ情報をLanguage.Haske

    1

    1答えて

    名前のリストに基づいて定数の束を生成する方法を知りました。 私は、この実施例で開始: ConstantCreation.hs module ConstantCreation where import Language.Haskell.TH createConstant :: String -> Q [Dec] createConstant constantName = do consta