Ich versuchte, eine String
und String
zu vergleichen, erwartet True
.Wie vergleicht man Gleichheitstypen?
Idris> String == String
Can't find implementation for Eq Type
Dann erwartete ich False
wenn eine String
zu einem Bool
zu vergleichen.
Idris> String /= Bool
Can't find implementation for Eq Type
Fehle ich eine import
?
Ist parametrisch erwünscht, damit der Compiler/die Schnittstelle die freien Terme ableiten kann? –
Wenn in 'A == B' 'A' und' B' in kanonischer Form sind und zu einem geschlossenen Universum gehören, müssen Sie die Parameter nicht unterbrechen, um sie auf Gleichheit prüfen zu können (und Sie können die Ganzer "Typ" unter Verwendung von Induktions-Rekursion und irgendeiner Form von generischer Programmierung, wie sie es in der Beobachtungstheorie getan haben. [Hier] (https://github.com/effectfully/random-stuff/blob/master/EqType.agda) ist ein Code. Das Verwenden von Begriffen in kanonischer Form ist jedoch meist nutzlos, besonders wenn Sie ein nichtparametrisches Universum haben, das explizite Codes für Typen anbietet. – user3237465