我想在ML中編寫一個簡單的過濾函數。這個想法是函數only_capitals
接受一個字符串列表並返回一個字符串列表,只有以大寫字母開頭的字符串。下面是我的實現,但我得到一個類型錯誤,我不明白: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
以下是錯誤:
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
那麼,有什麼錯誤? – melpomene