Извините (возможно, слишком много) основного вопроса. Supppose ЯMaxima: как отображать переменную по символам
b:2;
c:3;
a:b+c;
Есть ли способ, чтобы отобразить определение из a
, то есть для отображения b+c
вместо 5
?
Извините (возможно, слишком много) основного вопроса. Supppose ЯMaxima: как отображать переменную по символам
b:2;
c:3;
a:b+c;
Есть ли способ, чтобы отобразить определение из a
, то есть для отображения b+c
вместо 5
?
Как вы заявили проблему, нет, потому что после назначения a
не имеет связи с b + c
(только с заданным числовым значением).
Однако вы можете перефразировать проблему, чтобы вы могли восстановить правую часть задания. Например:
kill (a, b, c); /* remove any existing values */
b : 2;
c : 3;
a : '(b + c);
=> c + b
''a;
=> 5
a;
=> c + b
kill (a, b, c);
a : b + c;
=> c + b
b : 2;
c : 3;
''a;
=> 5
a;
=> c + b
В обоих случаях b + c
не замещен числовыми значениями, когда он назначен a
, либо путем предотвращения оценки (первый пример) или путем присвоения, прежде чем b
и c
приведены числовые значения. Наконец, вот еще один подход, который позволяет избежать присвоения числовых значений b
и c
:
kill (a, b, c);
a : b + c;
=> c + b
subst ([b = 2, c = 3], a);
=> 5
a;
=> c + b
Я думаю, что это последний метод, который использует subst
, является предпочтительным, поскольку другие подходы используют цитаты кавычки оператора ''
, который является слишком тонкий и, следовательно, имеет эффект, который может быть неожиданным.
Кристально чистый ответ, как всегда Роберт, спасибо! – mmj