SML:定义一个数组

SML:定义一个数组,sml,smlnj,Sml,Smlnj,原谅我,如果这是琐碎的但是 我正在阅读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.fromL

原谅我,如果这是琐碎的但是 我正在阅读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];
使用
数组。制表

fun incr x=x+1;
val a=数组。制表(3,增量);
Array.tablate
接受两个参数:数组的大小和 用于初始化数组项的函数

val a=Array.tablate(3,增量);
因此相当于:

val a=Array.fromList[incr(0)、incr(1)、incr(2)];
请注意,我已经定义了一个函数
incr
,但我也可以这样做:

vala=Array.tablate(3,fnx=>x+1);