我得到一個問題,我有fun a類型的值,用fun是一個功能和a不得到的類型檢查和計算拋出一個價值無法計算功能的應用程序統一錯誤,當我強制它是該功能應用程序的結果。 特定的錯誤是這樣的: When checking right hand side of testRec2 with expected type
Record [("A", String), ("C", Nat)]
Typ
我在伊德里斯面臨一個問題,在那裏我想創建一個基於可判斷財產的類型級別「檢查」,如果屬性持有我得到我想要的類型,但如果屬性失敗,我得到Unit(()),表明程序處於不一致狀態(如果我決定將它用作我的原始類型,則不應編譯)。 下面是一個例子: TestType : {k : Nat} -> Nat -> Vect k Nat -> Type
TestType n ls with (isElem n
來自Haskell,我正在讀伊德里斯關於懶惰(非嚴格性)的故事。我觸輪近期發行說明和found code類似於以下 myIf : (b : Bool) -> (t : Lazy a) -> (e : Lazy a) -> a
myIf True t e = t
myIf False t e = e
我寫了一個簡單的階乘函數來測試它 myFact : Int -> Int
myFact n
恢復型 比方說,我有一個數據類型: data Term : Type -> Type where
Id : Term (a -> a)
...
App : Term (a -> b) -> Term a -> Term b
有了一個證明事情是App: data So : Bool -> Type where
Oh : So True
isApp :
我正在學習Idris,我被困在一個非常簡單的引理上,它顯示某些特定索引對於數據類型是不可能的。我試圖用不可能的模式,但伊德里斯拒絕它們與以下錯誤消息: RegExp.idr line 32 col 13:
hasEmptyZero prf is a valid case
完整的代碼塊是在下列要點可供選擇: https://gist.github.com/rodrigogribeiro/f27
考慮以下片段匹配: import Data.List
%default total
x : Elem 1 [1, 2]
x = Here
type : Type
type = Elem 1 [1, 2]
y : type
y = Here
這給出了錯誤: 當檢查Y的右側:之間 ELEM X 類型不匹配(X :: XS)(這裏的類型) 和 ITYPE(預期類型) 類型的y,
我已經享受了最近學習一點伊德里斯的奢侈,而且我發現一件非常方便的事情就是! - 註釋,讓我縮短內部的monadic代碼不要阻止如 a' <- a
b' <- b
c' <- c
someFunction a' b' c'
到好得多 someFunction !a !b !c
現在,當我寫在Haskell代碼,我在尋找類似的,但據我可以告訴它不存在的東西(而且爆炸字符顯然已經用於嚴格的
So類型的預期用途是什麼?音譯成阿格達: data So : Bool → Set where
oh : So true
So升降機布爾命題到邏輯一。 Oury和Swierstra的介紹性文章The Power of Pi給出了一個由表格列索引的關係代數的例子。以兩個表的產品需要,他們有不同的列,爲此,他們使用So: Schema = List (String × U) -- U i