私は自分自身 Unitのモデル「無限」のベクトルに有限のベクトルを接着するために和タイプを使用して、有限 Vector Sの「 ZipVector」スタイル Applicative作りました 。 data ZipVector a = Unit a | ZipVector (Vector a)
deriving (Show, Eq)
instance Functor ZipVect
このタイトルは、あまり説明的ではありませんが、短いタイトルでこれをどのように記述するかわかりません。私はどんな勧告にも感謝しています! 私は私の問題の非常に単純化されたバージョンを提示するつもりです:) だから私は与えられたの正規の建設を生成することができるようになっている型クラス class Known f a where
known :: f a
を持っています特定のインデックス
Soタイプの目的は何ですか? Agdaに翻字: data So : Bool → Set where
oh : So true
Soは論理1までのブール提案を持ち上げます。 OuryとSwierstraの入門書The Power of Piは、テーブルの列によってインデックス付けされた関係代数の例を示しています。私は私が私のプログラムについて証明したいもののために証拠の用語を構築する
関数、パラメーターの番号、およびそのパラメーターの値をとり、部分的に適用される新しい関数を返す関数apply_nthを書くことができるのではないかと不思議です。 私は、タイプシステムのためにこれは不可能だと感じていますが、私は満足のいく答えを思い付くことができません。私はまた、働くタイプの署名を出すことができません。 言語がよりゆるやかにタイプされていれば、コードはこのように見えると思います。 a
型のレベルリストの先頭に何かがあるかどうかを判断する型ファミリがあります。 type family AtHead x xs where
AtHead x (x ': xs) = True
AtHead y (x ': xs) = False
この結果を表すシングルトンを構築したいと思います。これは単純な型のリストでうまく動作します。 data Booly b where