所以我試圖理解爲什麼這個代碼給周圍的()阿格達如何確定一個類型是不可能
data sometype : List ℕ → Set where
constr : (l1 l2 : List ℕ)(n : ℕ) → sometype (l1 ++ (n ∷ l2))
somef : sometype [] → ⊥
somef()
黃色高亮但這並不
data sometype : List ℕ → Set where
constr : (l1 l2 : List ℕ)(n : ℕ) → sometype (n ∷ (l1 ++ l2))
somef : sometype [] → ⊥
somef()
似乎都這樣sometype []是空的,但Agda無法找出第一個?爲什麼?這樣做的代碼是什麼?我能否以某種方式定義somef以使第一個定義有效?
是關於「無關」的點嗎?你能解釋一下這個點的含義嗎? – davik
我在網上找到了「虛線圖案」,但我還是不太明白。 Agda pdf中的依賴類型化編程說你可以在模式可以被推斷時這樣做,但是編譯器是否真的檢查過這個必須是唯一的情況? – davik
點信號表示(點狀)圖案內部的變量以某種其他模式引入。每個模式變量必須只被引入一次,如果我們想在其他地方使用相同的變量(因爲類型依賴性迫使模式中的值相等),我們可以在虛線模式內完成。 –