SML/NJ 错误。已完成,退出代码为 1
SML/NJ Error. Finished with exit code 1
我正在尝试执行以下操作,但编译器以代码 1 退出。
exception InvalidCharacter
fun order (_, _, nil) = nil
| order(b:char list, l::xl::xxl, s::xs) = if s=l then length(l::xl::xxl)::(order (b, b, xs))
else order(b, xl::xxl, s::xs)
| order (_, nil, _) = raise InvalidCharacter;
order ([#"a",#"b", #"c", #"d", #"e"],[#"a",#"b", #"c", #"d", #"e"],[#"b", #"e"]);
并且编译器也给出了这个函数的非穷尽匹配。我不明白为什么。
对于中间的参数,您刚刚匹配了列表至少有两个参数且列表为空的情况。当列表只有一个元素时,您还需要匹配。
我正在尝试执行以下操作,但编译器以代码 1 退出。
exception InvalidCharacter
fun order (_, _, nil) = nil
| order(b:char list, l::xl::xxl, s::xs) = if s=l then length(l::xl::xxl)::(order (b, b, xs))
else order(b, xl::xxl, s::xs)
| order (_, nil, _) = raise InvalidCharacter;
order ([#"a",#"b", #"c", #"d", #"e"],[#"a",#"b", #"c", #"d", #"e"],[#"b", #"e"]);
并且编译器也给出了这个函数的非穷尽匹配。我不明白为什么。
对于中间的参数,您刚刚匹配了列表至少有两个参数且列表为空的情况。当列表只有一个元素时,您还需要匹配。