我有这个代码:
fun all_except_option2(str : string, strlst : string list) =
let fun all_except_option([], result) = NONE
| all_except_option(str::T, result) = SOME(List.rev(result) @ T)
| all_except_option(H::T, result) =all_except_option(T, H::result)
in
all_except_option(strlst, [])
end
编译器说:
hw2provided.sml:22.13-24.70 错误:匹配冗余 (nil,result) => ... (str :: T,result) => ... --> (H :: T,result) => ...
我已经用“case of”语句处理了这个问题,但我的问题是语言不与 str 进行模式匹配(从上面)?为什么编译器认为 str 类似于 H.