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