dependent-type

    2

    2答えて

    単純なDSLを実装するためにいくつかのHaskell拡張を使用しようとしています。私が望む機能は、変数の型レベルのコンテキストを持つことです。 私は、この種のものはAgdaやIdrisのような言語で一般的な場所であることを知っています。しかし、私はハスケルで同じ結果を達成することが可能かどうかを知りたいと思います。 私の考えは、タイプレベルの関連付けリストを使用することです。コードは以下の通りであ

    9

    1答えて

    シンボルを使用して型レベルでタグ付けされたアイテムを格納するデータ構造を作成したいとします。この:あなたはコンパイラがfrom' _ Nil定義(??なぜそれが、やり方によって、それは止めるようにする方法があるん)しかし、私が本当に欲しかっを供給していないために私を警告しているという事実を無視した場合 data Store e (ss :: [Symbol]) where Nil ::

    2

    1答えて

    私はIdrisを初めて利用しています。私は有界数を記述するデータを作成する必要があります。だから私は、このようなコンストラクタで、このようなデータを作りました: data BoundedDouble : (a, b : Double) -> Type where MkBoundedDouble : (x : Double) -> {auto p : a <= x &&

    1

    1答えて

    Haskellで依存型プログラミングを面白くしようとしています。より具体的には、型セーフな検索操作です。 data Attr (xs :: [(Symbol,*)]) where Nil :: Attr '[] (:*) :: (Sing s, t) -> Attr xs -> Attr ('(s , t) ': xs) と私は答え持っている:Previouslyは、私は次

    4

    3答えて

    ハスケルでかなりの経験をして、私はちょうど定理証明のためにIdrisを使い始めました。これは、単純なステートメントを証明しようとしたときに直面した問題を示す最小限の例です。 たちが総機能test持って考えてみましょう。もちろん total test : Integer -> Integer test 1 = 1 test n = n を、私たちは関数がtest n = nに単純化することが

    0

    1答えて

    私はAgdaのモナド型クラスをエンコードしようとしています。私はこれを遠くに持っています: module Monad where record Monad (M : Set → Set) : Set1 where field return : {A : Set} → A → M A _⟫=_ : {A B : Set} → M A → (A → M B)

    8

    1答えて

    propositionalとpromotedの間に等しい接続が実装されていますか? のは、私はいくつかのSymbolのためのスコープに prf :: x :~: y があるとしましょう。 fromProp :: (KnownSymbol x, KnownSymbol y) => x :~: y -> (x :== y) :~: True fromProp Refl = Refl しかし、

    0

    2答えて

    私はF#とHaskellを初めて使っており、もっと時間を割くことを好む言語を決定するためにプロジェクトを実装しています。 私は、与えられた数値型がトップレベル関数に与えられたパラメータに基づいて(つまり、実行時に)次元を与えられることを期待しています。たとえば、このF#のスニペットでは、私が type DataStreamItem = LinearAlgebra.Vector<float32>

    3

    2答えて

    私はこの問題に対してしばらくの間頭を打っていました。従属フィールドを持つレコードタイプがあり、レコード変換の等価性を証明したいと思います。私は私の問題の要点を小さな例にしてみようとしました。 module Bar where open import Data.Nat open import Relation.Binary.PropositionalEquality as PE open im