Клен: имеющий параметры [1]; возвращая 'a [0] = 2' как сделать a [0] = 2? - PullRequest
0 голосов
/ 26 декабря 2010

Итак, у меня есть массив с именем params[];, в нем есть такие вещи, как a[0] = 2.Я хочу, чтобы все такие предметы были настоящими, и я бы назвал их [0];и получить 2. Как сделать такую ​​вещь в клене?

1 Ответ

1 голос
/ 02 января 2011

Это не единственные способы достижения вашей цели. Но, надеюсь, они вас направят.

Одним из способов является обработка каждого такого уравнения (из params) в отдельности.

restart:
params := array(1..3):
params[1] := a[0]=2:

params[1];
                        a[0] = 2

a[0];
                          a[0]

assign(params[1]);

a[0];
                           2

У вас могут быть все записи params, являющиеся уравнениями, и вы хотите выполнить одну и ту же задачу для всех записей одновременно.

restart:
params := array(1..3):
params[1] := a[0]=2:
params[3] := a[5]=7:

params[1];
                        a[0] = 2

a[0], a[5];
                       a[0], a[5]

entries(params);
                 [a[0] = 2], [a[5] = 7]

assign(entries(params));

a[0], a[5];
                          2, 7

Или, возможно, вы захотите использовать Array в верхнем регистре вместо массива в нижнем регистре (что не рекомендуется в современном Maple).

restart:
params := Array(1..3):
params[1] := a[0]=2:
params[3] := a[5]=7:

params[1];
                        a[0] = 2

a[0], a[5];
                       a[0], a[5]

map(rhs,rtable_elems(params));
                  {a[0] = 2, a[5] = 7}

assign(%);

a[0],a[5];
                          2, 7

Или у вас могут быть некоторые элементы params, являющиеся уравнениями, а другие - какого-то другого типа (скажем, простые скалярные выражения). В этом случае вы можете сначала выбрать те из них, которые являются уравнениями, и назначить их только с использованием этого подмножества.

...