如何匹配变量值。所以,我想写 smt
val x = 2
val m = (1, 2)
case m of (_, valueOf(x)) => "same"
| (_, _) => "different"
我猜,它命名为稳定标识符。
如何匹配变量值。所以,我想写 smt
val x = 2
val m = (1, 2)
case m of (_, valueOf(x)) => "same"
| (_, _) => "different"
我猜,它命名为稳定标识符。
您可以在表达式中使用变量,在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