有人知道如何用ML中的几个语句定义一个函数吗?

时间:2013-07-28 15:04:14

标签: ml

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

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

当我写这行代码时,我收到错误。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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中一样,所有变量都是不可变的。