Die Unifikation ist korrekt. Leider ist das der Nichtdeterminismus in unseren Impementierung, dass hier verschiedene aber alles korrekte Ergebnisse herauskommen. Das Problem ist, dass der TPH O…
Lösung 1, Result 1 ist m.E. definitiv falsch. Alle anderen Lösungen kann ich mir durch Nicht-Determinismus und Variancen erklären
Drei Fragen bitte jeweils beantworten:
- Wenn ich es richtig sehe ist das zweite Ergebnis das richtige oder?
- Bei dem ersten Ergebnis kommen nur für das N = ... weitere Lösungen mit…
public <T> Cons<T> append(Cons<T> x, Cons<T> list2) {
return switch(x) {
case Cons(T a, Cons<T> b) -> new Cons<T>(a, append(b, list2));
case Cons(T a, Empty<T> b) -> new…
Ja, ich bin zu neuen Einsichten gekommen, melde mich später
Das Ergebis ist fast richtig: [(TPH ACG = GTV T), (TPH ACI = GTV T), (TPH AQ = Cons), (TPH BI = Empty), (TPH AU = Empty), (TPH AC = Cons), (TPH AFO, TPH AFJ),…
Zile wäre:
public class PatternMatchingListAppend {
public append(Cons(a, Cons b), Cons list2) {
return new Cons<>(a, append(b, list2));
}
public…
Ich schlage folgende Änderungen vor
public append(Cons(a, b), list2) { return new Cons<>(a, append(b, list2)); }
In AbsSyn: TPH AQ append(Cons(TPH AR a, TPH AS b),…
Was meinst Du mit rausziehen. Mach mal ein Beispiel