Ich möchte eine Funktion, die eine Mylist-Wert umzukehren. Ich habe Code geschrieben, aber es funktioniert nicht, und ich würde mich über Tipps und Hilfe freuen.Reverse-Funktion und Append-Funktion an benutzerdefinierte Liste Standard ml
der Datentyp-Code:
datatype 'element mylist =
NIL
| CONS 'element * 'element mylist;
und die Funktionen, die ich geschrieben sind:
fun reverse NIL = NIL
| reverse (CONS(x, xs)) = CONS((reverse xs), x);
Ich möchte auch eine Funktion schreiben, die 2 mylist Werte anhängt, habe ich einige Fälle, aber es hat nicht funktioniert aber ich von der folgenden:
aber es funktioniert nicht, gibt mir Fehler, was falsch ist wi Mein Code?
Dank
Ich habe die duplizierten Pattern-Matching-Fälle, die du erwähnt hast, nicht ganz verstanden, jeder Fall hat ein anderes Fn darin, warum wird es immer noch als dupliziert betrachtet? –
Weil die Teile auf der linken Seite vor '=' gleich sind, kann der Compiler nicht zwischen ihnen unterscheiden. – pad
Ich sehe, also, wenn ich etwas Ähnliches zu den 4 Fällen machen möchte, die ich vorher habe, also in der Fn-Aussage, wenn ich ein if für den zweiten Parameter verwende, wird es dasselbe sein, was ich in den 4 Fällen will? Es ist irrelevant, was man für zukünftige Referenz wissen sollte –