typeclass

    4

    1答えて

    次のコードでは、シェイプレスでtypeclassインスタンスを導出しようとしています。しかし、より複雑なケースクラス(より複雑なHListに変換される)の場合、同じ種類の暗黙の型を2度解決しないように見えますが、コンパイラは私に "多様な暗黙の拡張"を与えます。たぶん私はコンパイラのいくつかの他のルールが欠けているでしょうか? (フィドル:https://scalafiddle.io/sf/WEp

    0

    1答えて

    プロモーションタイプNat = Suc Nat | Zeroとタイプメッシュclass C (a :: Nat) bを作りたいと思います。 GHCにinstance C Zero bとinstance C (Seq x) bがすべてのケースをカバーしていると確信させる方法はありますか?したがって、クラスのメソッドを使用するときはいつも、Cを制約として明示的に宣言する必要はありません。ここではいくつ

    0

    1答えて

    パラメータ型クラスを使いたいです。以下は、私のソースコードは次のとおりです。コンパイル時に class (CContext3D c k v) => CBuilder3D c a k v where build3D :: c -> a -> String -> HSL HLangJS HLangJS 私は次のエラーが表示されます Could not deduce (CBuilder3D

    4

    3答えて

    私が最初に深刻なcriticism on -XUndecidableInstancesを読む時までに、私はすでにそれに完全に慣れていました。それは単にという迷惑な制限の削除であると見なされます。Haskell98はコンパイラの実装を容易にする必要があります。。 実際、私は、決定不能なインスタンスが必要だったアプリケーションがたくさん出てきましたが、実際にはそれらがundecidabilityに関係

    3

    1答えて

    ファンクションのタイプ定義を最も厳密にするか、最も緩いタイプにするのが一般的ですか?各アプローチの長所と短所は何ですか?私は、my pearson correlation codeを厳密に2倍書き換えてみると、書くこと、それに従うこと、そして理由をつけることがより簡単であることを発見しました(これはちょうど未熟なことかもしれません)。しかし、より広範な型定義を持つことが、関数をより一般的に適用可能

    4

    2答えて

    私は型クラスとGADTSの違いを理解しようとしています。特に、-XMultiParamTypeClasses拡張子を使用している場合は、 はどちらも同様の用途を持っているように見えます: class MyClass a b where f :: a -> b -> Bool instance MyClass String String where f s1 s2 = ...

    1

    1答えて

    私はモナド変換器UlffTを次のように定義しました。 私はHalogenで働いているが、これはHalogen -questionではありません - 私はちょうどコンテキストを提供しています。 UlffTは、Affに積み重ねられ、HalogenMで使用されます。 newtype UlffT m a = UlffT (ExceptT Error (ReaderT Env m) a) unUlffT

    1

    1答えて

    はValueと呼ばれるタイプを作成することです eval $ Dif (Sum (Num 3) (Num 6)) (Neg 4) > 13 私の現在のコードでは、私は各オペレータをthemselveでテストすることができますそれが機能します。 eval (Dif 3 4) >-1 私は、エラーを取得し、上記のように予想される入力で、ネストされた操作を実行しようとすると問題が発生: "C

    2

    1答えて

    私はrecursion-schemesを使って再帰的なデータ型を実装しようとしています。私はそれを印刷できるようにしたいと思います。 import Data.Functor.Foldable data T1F a = Foo deriving Show type T1 = Fix T1F data T2 = Bar T1 deriving Show -- error here エラーメ

    1

    2答えて

    私は自分のtypeclassを宣言する必要がありますが、なぜ(==)があるのか​​わかりません。 data Egg = Soft | Hard instance Eq Egg where (==) 私は(==)Eqのインスタンスを持っている唯一のクラス