Frage

Ein Vorwort Beachten Sie, dass dies für eine Aufgabe ist.Für die erste Frage wurde bereits eine Frage gestellt.Wir haben also den Datentyp:

data BoolProp : ??? where
  ptrue  : BoolProp true
  pfalse : BoolProp false
  pand   : (P Q : Bool) -> (BoolProp P) -> (BoolProp Q) -> BoolProp (P ??? Q)
  por    : (P Q : Bool) -> (BoolProp P) -> (BoolProp Q) -> BoolProp (P ??? Q)
  pnot   : (P : Bool) -> BoolProp (not P)

Jetzt werden wir gebeten, den Vorschlag zu schreiben

eval (PAnd (POr PTrue PFalse) PFalse) 

was sollte zurückkehren BoolProp false

Ich bin nur verwirrt darüber, wie das geht. Ptrue zurückgeben BoolProp true allerdings mit dem Datentyp por nimmt zwei auf Boolist nicht BoolPropist.Möglicherweise ist der Datentyp falsch.Jeder Kopf hoch wäre großartig

Ich sollte hinzufügen, dass der Bewertungscode ein Ausschnitt aus dem Haskell-Code ist

beachten:habe es bearbeitet, um nicht alles wegzugeben

War es hilfreich?

Lösung

Der Grund, warum Ihr Code nicht kompiliert wird, liegt darin, dass die Klammer in Ihrem ersten Abschnitt falsch ist.Zum Beispiel sollte es für pand so aussehen pand :∀ { Pq :Bool } → BoolProp P → BoolProp Q → BoolProp (P ∧ Q )

Ändern Sie das und der zweite Teil sollte kompiliert werden.Ich hatte genau das gleiche Problem....

Andere Tipps

nun, ich weiß nicht, ob es richtig ist oder nicht und das ist nur für den ersten Teil wenn Sie über die Bewertung der letzten Frage nachdenken, weiß ich nicht.

Aber für den ersten Teil seit der Typensignatur ist

prop : BoolProp false

Ich habe gerade Requisite gleich der eval Aussage gemacht.Da die eval-Anweisung gleich BoolProp sein sollte.

so

prop = (pand (por ptrue pfalse) pfalse)

vielleicht ist es falsch, ich weiß nicht aber es ist K-k K-l und CCNC

und ich bin glücklich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top