Maxima:Maxima称之为“数组”是什么?

时间:2015-04-28 13:01:00

标签: arrays maxima

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

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

我会得到:

[a]

所以a是Maxima的数组......但sqrt(2)是一个无理数。

我习惯将数组视为按索引排序的项集合,其中这些索引是整数...我承认我对“数组”的定义受到其他“非符号”编程语言的强烈影响。在这些语言中,数组“映射”到计算机内存的某个连续区域。因此,使用整数作为索引是很自然的,因为整数是可数的。但是,实数不可数。

显然,maxima似乎对术语“数组”有不同的定义:究竟是什么? (文档没有定义它,至少在documentation section dedicated to arrays

中没有介绍性段落

1 个答案:

答案 0 :(得分:3)

Maxima的数组,列表和矩阵的概念非常混乱,因为在项目的许多年里,各种想法都有所增加。

Maxima的“下标变量”=带下标(带任意索引)且没有赋值的符号。例如。 a[sqrt(2)]没有分配值。

Maxima的“未声明的数组”=具有任意键的哈希表,与数组符号相关联作为符号属性,而不是值。您的a[sqrt(2)] : 1是未声明数组的示例。 Maxima在第一次分配值时创建数组a

Maxima的“声明数组”=连续存储,与数组符号相关联,作为符号属性,而不是值。

Maxima的“Lisp数组”=连续存储,与数组符号关联为符号值。

Maxima的“快速数组”=哈希表,与数组符号相关联作为符号值。

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