real
ist kein Gleichheitstyp in ML, und daher sind auch keine polymorphen Typen aus konstruiert real
insbesondere s - real list
s sind keine Gleichstellungsarten, und Sie können den Bediener nicht verwenden =
zwei vergleichen real list
s, auch wenn diese Listen leer sind. Stattdessen müssen Sie Match -Match. Zum Beispiel,
fun reverse [] = []
| reverse (x::xs) = (reverse xs) @ [x]
oder
fun reverse [] = []
| reverse (x::xs) = case xs of
[] => [x]
| _ => (reverse xs) @ [x]
wird auch für Nicht -Nive -Typen funktionieren.
(Verwenden Sie abwechselnd die integrierte Funktion List.rev
.)