SML / NJ错误。完成退出代码1

时间:2015-11-14 20:38:42

标签: smlnj

我正在尝试执行以下操作,但编译器以代码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 个答案:

答案 0 :(得分:1)

对于中间参数,您刚刚匹配列表至少有两个参数以及它是空的情况。当列表只有一个元素时,您还需要匹配。