You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SML中能否在一行内声明多个变量绑定?

SML中let表达式内一行声明多个变量绑定的方法

SML支持两种合法的一行声明多变量绑定的方式,你尝试的逗号分隔写法不符合语法规范,具体可行方案如下:

1. 利用元组模式匹配绑定

通过构造元组并解构的方式,一次性绑定多个变量,语法如下:

let
    val (m1, m2, m3) = ([1], [2], [3])
in
    (* 你的业务逻辑代码 *)
end

这种方式会先同时计算所有右侧的表达式,再将结果分别绑定到对应的变量上。

2. 分号分隔多个val声明

将多个val声明放在同一行,用分号分隔,效果和换行写多个val完全一致:

let
    val m1 = [1]; val m2 = [2]; val m3 = [3]
in
    (* 你的业务逻辑代码 *)
end

这种方式的变量求值顺序是从左到右,和逐行声明的逻辑没有区别。

你最初尝试的逗号写法不生效的原因是:SML中逗号仅用于构造元组,不能作为变量绑定的分隔符,因此该写法属于语法错误。

内容的提问来源于stack exchange,提问作者Ashwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 18:31:09