1

如何匹配变量值。所以,我想写 smt

 val x = 2
 val m = (1, 2)
 case m of (_, valueOf(x)) => "same" 
         | (_, _)          => "different"

我猜,它命名为稳定标识符。

4

1 回答 1

5

您可以在表达式中使用变量,在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
于 2013-10-26T13:38:21.173 回答