SML:定义一个数组

SML: define an array

原谅我,如果它是微不足道的但是 我正在阅读 SML 中数组的文档,但我很困惑。我看到很多功能,但我如何制作自己的数组;我如何初始化一个? (一切,我都试过了)
例如,一个列表是这样初始化的:

 val l = [1,2,3];

如果我想让 [1,2,3] 成为一个 1x3 数组?
我找到了如何初始化一个数组但只有一个值,例如:

array(4,0) (*creates [0,0,0,0] *)

但是 [1,2,3];

你有(至少)两种可能性,要么使用 Array.fromList:

val a = Array.fromList [1, 2, 3];

要么使用 Array.tabulate:

fun incr x = x + 1;
val a = Array.tabulate (3, incr);

Array.tabulate 接受两个参数:数组的大小和 用于初始化数组项的函数。

val a = Array.tabulate (3, incr);

因此等同于:

val a = Array.fromList [incr(0), incr(1), incr(2)];

请注意,我已经定义了一个函数 incr 但我也可以这样做:

val a = Array.tabulate (3, fn x => x + 1);