0

我正在尝试在 CPN ML 中编写一个更改 3 个变量的函数,但我不知道如何,我只能写一个语句。我的功能应该是这样的:

fun T1() =
x=x+1;
y=y+2;
k=k-1;

当我编写这行代码时,出现错误。

4

2 回答 2

0

在 SML 中,表达式也可以在 let 表达式的主体中用分号分隔,如下所示:

fun T1() =
  let in
    x=x+1;
    y=y+2;
    k=k-1
  end

有些人更喜欢这个而不是括号,因为它看起来更像块结构。它还为您提供了插入声明的地方(在 let .. 部分),这是函数发展的常见方式。

当然,由于这是一种函数式语言,您要么需要使用参考单元格 (x := !x + 1) 或声明新变量 (val x = x + 1) 来完成函数体中的操作. 没有像 C 中那样真正的“语句”,所有变量都是不可变的。

于 2014-06-21T20:16:19.200 回答
0

警告:我对 CPN ML 一无所知,但基于,我猜它的语法类似于标准 ML?

在这种情况下,您需要将括号中的语句分组:

fun T1 () =
  (x=x+1;
   y=y+2;
   k=k-1)
于 2013-08-13T19:37:07.813 回答