如何拥有多个不相互交错的陈述陈述? 例如玩具例子:SML:多个案例陈述
fun multi_cases(xs) =
case xs of
[] => 5
| x::ys => case x of
1 => 2
|_ => 3
| x::[] => case x of
1 => 5
| _ => 7
;
stdIn:59.17-64.28 Error: types of rules don't agree [overload conflict]
earlier rule(s): [int ty] -> [int ty]
this rule: [int ty] list -> [int ty]
in rule:
:: (x,nil) =>
(case x
of 1 => 5
| _ => 7)
最后两个case语句得到混合起来,我怎么能告诉SML,他们确实是两个独立的case语句,而不是1情况下,x的延续/独立分支=> 2 ...
上面的答案在下面的答案中指出了它们的一般性问题。
[巢式病例中陈述的可能的复制SML](http://stackoverflow.com/questions/14708732/nested-case-statements-in-sml) –