idris

    4

    3答えて

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

    2

    1答えて

    公式のIdrisチュートリアルのいくつかの例を読んで遊んでいると、怠惰な評価に関してちょっと混乱しました。イドリスが先行評価を使用してチュートリアルに記載された、および遅延評価を使用して、彼らはこれが ifThenElse : Bool -> a -> a -> a ifThenElse True t e = t ifThenElse False t e = e 適切ではない例を与えるため

    0

    2答えて

    次のコードを提示:私は他のいくつかの方法でこのコードを再書かれているが、イドリスは合計としてそれを認識することができません TotalityOrWhat.idr:17:3: TotalityOrWhat.parseDriver, parseDriver' is possibly not total due to recursive path TotalityOrWhat.parseDriver

    3

    1答えて

    Idrisのチュートリアルに従っており、従属ペアとFinで を実験したかったのです。 次のコードはIdrisにチェックを入れません。 data Fin : Nat -> Type where FZ : Fin (S k) FS : Fin k -> Fin (S k) P : (Fin 1) -> Type P FZ = Char vec : DPair (Fin 1

    2

    1答えて

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

    2

    1答えて

    は、私はたくさん最近イドリースで実験し、以下の「セットのタイプレベルの定義」を思い付いています: mutual data Set : Type -> Type where Empty : Set a Insert : (x : a) -> (xs : Set a) -> Not (Elem x xs) -> Set a data Elem : (x : a

    0

    2答えて

    、種類はファーストクラスの値です: FooType : (Type, Type) FooType = (Int, Int) fst FooType -- Int : Type 私は別の方法を超えるタイプのメンバーを再利用できるように、Scalaで何とかこの機能を使用したいと思います: class Foo { type FooType = (Int, Int) def

    4

    1答えて

    私はIdrisインターフェイスを使用して簡単な代数構造階層を実装しようとしています。イドリスはこの奇妙なエラーメッセージを与えている、 module AlgebraicStructures -- definition of some algebraic structures in terms of type classes %access public export Associati

    1

    1答えて

    data A = B | C Int implementation Semigroup A where B <+> x = x x <+> B = x C m <+> C n = C (m + n) 私イドリス0.11.2で ./Nodes/Test.idr:3:1: error: expected: ";", "|", declaration, e