文字列リストを生成する次の関数があります。
fun get_substitutions1 ([],_) = []
| get_substitutions1 (x::xs,s) = case all_except_option(s,x) of
NONE => [] @get_substitutions1(xs,s)
| SOME lst => lst @get_substitutions1(xs,s)
そして、文字列リストリストとタイプを受け取るこの関数:
fun similar_names(slist,full_name:{first:string,middle:string,last:string})=
let
fun aux(slist,acc)=
case full_name of
{first=a,middle=b,last=c} => case get_substitutions1(slist,a) of
[] => full_name::acc
| x::xs' => full_name:: aux(xs',{first=x,middle=b,last=c}::acc)
in aux(slist,[])
end
そして、私はエラーを受け取ります:
エラー:演算子とオペランドが一致しません。 演算子ドメイン:文字列リストリスト* {first:string、last:string、middle:string}リスト オペランド:文字列リスト* {first:string、last:string、middle:string}リスト 式で: aux(xs'、{first = x、middle = b、last = c} :: acc)
他に方法はありますか?