Ich versuche, eine einfache Filterfunktion in ML zu schreiben. Die Idee ist, dass die Funktion only_capitals
eine Liste von Strings übernimmt und eine Liste von Strings zurückgibt, wobei nur die Strings mit einem Großbuchstaben beginnen. Hier ist meine Umsetzung, aber ich bin ein Typ-Fehler bekommen, die ich nicht verstehe:Typ Mismatch in ML List.filter
fun only_capitals (strs : string list) =
let
fun isCapitalized (str) = Char.isUpper(String.sub(str, 0))
in
List.filter(isCapital, strs)
end
Hier ist der Fehler:
hw3provided.sml:5.18-5.27 Error: unbound variable or constructor: isCapital
hw3provided.sml:5.6-5.34 Error: operator and operand don't agree [tycon mismatch]
operator domain: 'Z -> bool
operand: _ * string list
in expression:
List.filter (<errorvar>,strs)
val it =() : unit
Also, was ist der Fehler? – melpomene