请原谅,如果这很琐碎,但我正在阅读SML中的数组文档,我感到困惑。我看到了许多函数,但是如何创建自己的数组;如何初始化一个数组呢?(一切,我都失败了)
例如,一个列表是这样初始化的:
val l = [1,2,3];如果我想让1,2,3成为数组1x3?
我找到了如何初始化一个数组,但是只有一个值,例如:
array(4,0) (*creates [0,0,0,0] *)但那1,2,3又如何?
发布于 2021-04-02 14:58:16
您(至少)有两种可能,要么使用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);https://stackoverflow.com/questions/66918214
复制相似问题