Ich habe einen Standard-Datentyp, der Formeln der Prädikatenlogik darstellt. Eine Funktion, die eine natürliche Abzugseliminierungsregel für die Disjunktion darstellt, könnte folgendermaßen aussehen:
%Vor% Anstelle der Auswertung auf Nothing, wenn die Vereinheitlichung fehlschlägt, gibt die Funktion keine Lösungen in PACKS
zurück:
Was fehlt mir und warum wird el
nicht auf Nothing
ausgewertet, wenn die Vereinheitlichung fehlschlägt?
Es scheint, dass dies nicht der beste Weg ist, um gleichwertige Einschränkungen zu verwenden. Wenn a =:= b
fehlschlägt, schlägt die Funktionsklausel ebenfalls fehl.
Zum Beispiel:
xx 7
Ergebnisse in 3
auswerten (nicht 7
), weil 7 =:= 5
die erste Klausel der Funktion xx
vollständig beendet.
Ich denke, der Code sollte so aussehen:
%Vor%Tags und Links functional-programming logic-programming curry maybe