1
考慮:理解`decEq`
*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 function Decidable.Equality.decEq:
Type mismatch between
Vect 0 Int (Type of e)
and
Vect 2 Integer (Expected type)
Specifically:
Type mismatch between
0
and
2
爲什麼一定要Nat
參數彼此相當的DecEq?
注 - 張貼在https://groups.google.com/forum/#!topic/idris-lang/qgtImCLka3I原本
'的Vect 0 Int'和'的Vect 1 Int':
您可以先檢查它們的長度,然後委託給同質版本寫相同的元素類型的
Vect
ORS自己的異質平等決勝局與「Vect n Int」和「Vect n Float」是不同的類型。 – gallais