在 smlnj 中创建一个数组

Creating an array in smlnj

好的,让我先说我是Standard ML的超级新手。我真的刚刚开始用这种语言编程。老实说,我不打算深入研究这种语言。我只需要完成一项一次性任务然后继续前进。

我正在尝试解决如何制作简单数组的问题。信不信由你,文档让我感到困惑,以至于我无法制作一个简单的数组。

所以似乎为了在 sml New Jersey 中做一个数组...我需要分配 maxLen 变量。我现在只是简单地分配了它 24,但也许我这样做的方式不起作用。

假设我正在尝试创建一个包含 12 个点的数组,初始值为 5。

val maxLen = 24;  (*assigning maxLen 24 as the largest array possible*)

array (12, 5);   (*Creating an Array of 12 spots with value of 5 for each*)

我在这里错过了什么?

val a = Array.array (12, 5)

工作正常。你不需要 "set" Array.maxLen,你也不可以。这只是一个特定于实现的常量,告诉您执行系统上数组的最大大小是多少。

另外,请注意您不能增长数组。数组是一种基本数据类型,一旦创建就具有固定大小。如果您需要动态增长,那么您需要围绕它构建动态数据结构(或使用提供它的库)。