idris

    4

    1答えて

    (x, y)のタイプをx /= yに設定したいと考えています。 私の考えはNEqPa : Type -> Typeは、このようなNEqPa aはx : a、y : aとp : (x = y) -> Voidを持つすべての要素を((x,y), p)含めるべきであると定義することです。私は次の2つのバージョンを試しました: NEqPa a = ((x, y) : (a, a) ** (x = y) -

    3

    1答えて

    私はイドリスで遊んでいると私は私を少し混乱何かに出くわした:次の型チェックを : conc : Vect n a -> Vect m a -> Vect (n+m) a conc [] ys = ys conc (x :: xs) ys = x :: (conc xs ys) が、これにはない:と conc : Vect n a -> Vect m a -> Vect (m+n) a c

    12

    1答えて

    Listにはfilter : (a -> Bool) -> List a -> List aがありますが、Streamにはfilter : (a -> Bool) -> Stream a -> Stream aがありません。なぜですか? 似たような仕事をするいくつかの選択肢がありますか?イドリスで

    5

    1答えて

    fibの自分のバージョンを再生したいのですが、fibはPreludeでエクスポートされます。 Preludeからインポートを非表示にするにはどうすればよいですか?ハスケルでは、私はimport Prelude hiding (fib)と書くだろうが、Idrisではうまくいきません。

    2

    1答えて

    としてhttps://homes.cs.washington.edu/~jrw12/InductionExercises.htmlとしてsumとsum_contが同等であることを証明しようとしています。私が手に: sum_cont' xs (\ans => plus acc (plus x ans)) = plus (plus acc x) (sum xs) 私は書き換えplusAssocia

    2

    1答えて

    タイトルのとおりです。私がよく知っている他の依存システム(AgdaとCoq)では、ベクトルタイプはVect : Type -> Nat -> Typeと定義されています。インデックスの前にパラメータを置くことは意味があり、どんな場合でもベクトル型の標準と思われます。 IdrisはなぜVect : Nat -> Type -> Typeを使用しますか?

    2

    1答えて

    のために再実装fromIntegerしようとしたとき、私は次のコードを持っている: module Test data Nat' = S' Nat' | Z' Num Nat' where x * y = ?hole x + y = ?hole fromInteger x = if x < 1 then Z' else S' (fromInteger

    1

    1答えて

    は、与えられた `の理解: *section3> :module Data.Vect *section3> :let e = the (Vect 0 Int) [] *section3> :let xs = the (Vect _ _) [1,2] *section3> decEq xs e (input):1:7:When checking argument x2 to functi

    1

    1答えて

    Idrisを探索する私の旅では、私は小さな日付処理モジュールを "慣用的な"方法で書こうとしています。ここまで私がこれまで持っていたことがあります。 まず私は日、月、年を表現するためにいくつかの基本的な種類があります: module Date import Data.Fin Day : Type Day = Fin 32 data Month : Type where Ja