Maxima:Maxima 将 "array" 称为什么?

Maxima: what does Maxima call an "array"?

我有点困惑;我注意到如果我这样做 :

a[sqrt(2)] : 1;
arrays;

我会得到:

[a]

所以 a 是 Maxima 的一个数组……然而 sqrt(2) 是一个无理数。

我曾经认为数组是按索引排序的项目集合,其中这些索引是整数……我承认我对 "array" 的定义受到其他人的强烈影响,"non-symbolic" 编程语言。在那些语言中,数组 "map" 到计算机内存的某个连续区域。因此使用整数作为索引是很自然的,因为整数是可数的。但是,实数是不可数的。

显然,maxima 似乎对术语 "array" 有不同的定义:它到底是什么? (文档没有定义,至少documentation section dedicated to arrays里面没有介绍段)

Maxima 的数组、列表和矩阵概念非常混乱,因为在多年的项目中积累了各种想法。

Maxima 的 "subscripted variable" = 带有下标(带有任意索引)但没有赋值的符号。例如。 a[sqrt(2)] 没有赋值。

Maxima 的 "undeclared array" = 具有任意键的散列 table,与数组符号关联为符号 属性,而不是值。您的 a[sqrt(2)] : 1 是未声明数组的示例。 Maxima 在第一次赋值时创建数组 a

Maxima 的 "declared array" = 连续存储,与数组符号关联为符号 属性,而不是值。

Maxima 的 "Lisp array" = 连续存储,与数组符号相关联作为符号值。

Maxima 的 "fast array" = 散列 table,作为符号值与数组符号关联。

是的,这是一团糟。对于那个很抱歉。这些都是有趣的想法,但没有统一的框架。我什至没有提到列表和矩阵。希望这对大家有所帮助。