如何匹配变量值。所以,我想写像smt一样的
val x = 2
val m = (1, 2)
case m of (_, valueOf(x)) => "same"
| (_, _) => "different"
我猜,它命名为稳定标识符。
答案 0 :(得分:4)
您可以使用case
表达式中的变量和of
表达式中的常量:
case (1, x) of (_, 2) => "same"
| _ => "different"
标准ML中你不能做的是将两个变量相互匹配。这只会导致其中一个绑定到另一个的值(遮蔽其中一个变量的旧值)。您需要使用if
表达式,或者在case表达式之前将比较绑定到它自己的值,如下所示:
let
val cmp = fn (_, m2) => m2 = x
in
case cmp m of true => "same"
| false => "different"
end