Я немного смущен; Я заметил, что если я делаю:Maxima: что Maxima называют «массивом»?
a[sqrt(2)] : 1;
arrays;
Я хотел бы получить:
[a]
Так a
массив для Maxima ... еще sqrt(2)
является иррациональным числом.
Я использую для представления массива как набор элементов, отсортированных по индексам, где эти индексы являются целыми числами ... Я признаю, что мое определение для «массива» сильно зависит от других «несимвольных» языков программирования , В этих языках массивы «сопоставляются» с определенной смежной областью памяти компьютера. Поэтому естественно использовать целое число в качестве индексов, поскольку целое число является счетным. Однако реальные числа не счетны.
Очевидно, что максимы, по-видимому, имеют другое определение термина «массив»: что это такое? (документация не определяет его, по крайней мере, нет вводный абзац в documentation section dedicated to arrays)
Не пожалеете! (^. ^) У меня есть еще несколько вопросов для вас: я действительно не понимаю разницы между «свойством символа» и «значением символа» ... Другие вопросы: единственный способ создать «объявленный массив» - это вызов 'array()', правильно? Как мне сделать, чтобы создать «lisp-массив» или «быстрый массив»? –
Lisp имеет концепцию символа, имеющего несколько слотов (что-то вроде клавиш хэш-таблицы). Существует функциональный слот, слот значения, слот свойств, возможно, другие. Если символ может одновременно иметь как значение, так и функцию, он называется Lisp-2; если только один за раз, он называется Lisp-1. Список свойств - это всего лишь список ключей и значений; это простой способ связать произвольный материал с символом. Преимущество кладки хранилища для массива в списке свойств, а не в значении символа, заключается в том, что при вводе, скажем, 'a', вы просто видите' a', а не весь массив. –
О объявленных массивах, да, они создаются 'array'. Массивы Lisp создаются 'make_array', а быстрые массивы создаются автоматически (как необъявленные массивы), когда глобальный флаг' use_fast_arrays' является 'true'. –