首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SML:定义数组

SML:定义数组
EN

Stack Overflow用户
提问于 2021-04-02 10:50:56
回答 1查看 308关注 0票数 1

请原谅,如果这很琐碎,但我正在阅读SML中的数组文档,我感到困惑。我看到了许多函数,但是如何创建自己的数组;如何初始化一个数组呢?(一切,我都失败了)

例如,一个列表是这样初始化的:

代码语言:javascript
复制
 val l = [1,2,3];

如果我想让1,2,3成为数组1x3?

我找到了如何初始化一个数组,但是只有一个值,例如:

代码语言:javascript
复制
array(4,0) (*creates [0,0,0,0] *)

但那1,2,3又如何?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-02 14:58:16

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

代码语言:javascript
复制
val a = Array.fromList [1, 2, 3];

要么使用Array.tabulate

代码语言:javascript
复制
fun incr x = x + 1;
val a = Array.tabulate (3, incr);

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

代码语言:javascript
复制
val a = Array.tabulate (3, incr);

因此,相当于:

代码语言:javascript
复制
val a = Array.fromList [incr(0), incr(1), incr(2)];

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

代码语言:javascript
复制
val a = Array.tabulate (3, fn x => x + 1);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66918214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档