data-kinds

    4

    2答えて

    私は比較的新しいHaskellです。HListの定義の1つを理解しようとしています。 data instance HList '[] = HNil newtype instance HList (x ': xs) = HCons1 (x, HList xs) pattern HCons x xs = HCons1 (x, xs) 私はカップルの具体的な質問があります。 を私は見ている'[]

    2

    1答えて

    私は [Leaf 1, Rooted (Leaf 2), Branch (Leaf 3) (Branch (Leaf 4) (Leaf 5))] なく [Leaf 1, Rooted (Leaf 2), Branch (Rooted (Leaf 3)) (Branch (Leaf 4) (Leaf 5))] すなわちすることができますHaskellではタイプTをしたいのですが。 Roote

    2

    2答えて

    次のデータ型が定義されていると仮定します。 data X a = X {getX :: a} data Y a = Y {getY :: a} data Z a = Z {getZ :: a} は、3つの別々の機能、getX、getY、およびgetZが存在しなければなりませんか?このような何か定義された関数があるかもしれないように私には思える: get :: forall (τ :: (*

    2

    2答えて

    データ型を使用して型レベルプログラミングを行っていますが、これらの構造体を別の構造体に入れ子にしていると難しいです。 {-# LANGUAGE DataKinds, TypeFamilies, GADTs, MultiParamTypeClasses, FlexibleInstances #-} module Temp where data Prop1 = D | E data Low

    4

    1答えて

    DataKindsを使用すると、ghciが多型戻り値の型をピン設定しようとすると面白いエラーが表示されます。私は次のコードを持っています: {-# LANGUAGE DataKinds #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE StandaloneDe

    1

    2答えて

    で再帰GADTを処理する方法これはHaskellタイプのシステム拡張の中で最も遠いと思うし、私ができなかったエラーに遭遇した把握するため。長さの間に前もって謝罪していますが、それは私が持っている問題をまだ示している私が作ることができる最短の例です。 GADT定義 {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE DataKinds #-} {-#

    1

    2答えて

    fの種類は何ですか? class C f where comp :: f b c -> f a b -> f a c 私が書かれています:(* -> *) -> * -> * は、この正しいですか? cは具体的なタイプ*です。 aは、型を取り、型を生成する型です。両方ともfのパラメータですか?私の議論は正しいのですか? Tの種類は? data T f g = T (f String

    12

    1答えて

    DataKinds拡張子は「値」(つまりコンストラクタ)を型に昇格します。たとえば、TrueとFalseは、種類が異なるBoolの別の種類になります。 私がしたいのは反対です。すなわち、型を値に降格します。このシグネチャを持つ関数は、罰金のようになります。 demote :: Proxy (a :: t) -> t 私は実際にBoolのために、たとえば、これを行うことができます。 class

    4

    2答えて

    メッセージキュー用のlibを作成しています。キューはDirectまたはTopicのいずれかです。 Directキューには静的バインディングキーがあり、Topicキューには動的バインディングキーを設定できます。 Directキューでのみ機能するpublishを書いてみたいと思います。これは動作します: {-# LANGUAGE DataKinds #-} type Name = Text ty