DOM_PROC_ENV

Тип данных сред процедуры

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Описание

Среды процедуры являются в основном эфемерными объектами и, как только редко замечает пользователь (и еще более редко полезные, исследуют). Среда процедуры представляет процедуру, которая в настоящее время выполняется: формальные параметры и локальные переменные имеют значения.

Среды процедуры действительно редко становятся видимыми, и вы не должны управлять ими непосредственно. Они служат только одной цели: если процедура сгенерирована в другой процедуре, имена переменных в теле внутренней процедуры, которые не объявляются локальные, там относятся к именам во внешней процедуре, если они объявляются локальные во внешней процедуре. (См. Руководство по программированию для получения дополнительной информации о правилах определения областей видимости для MuPAD®.), Следовательно, внутренняя процедура должна содержать информацию о текущих значениях локальных переменных внешней процедуры. Следовательно, состояние внешней процедуры закодировано в объект типа DOM_PROC_ENV, и что объект хранится в возвращенной процедуре как ее двенадцатый операнд.

Вы никогда не должны генерировать объекты этого типа. Нет никаких доступных операций.

Примеры

Пример 1

Единственный случай, в котором необходимо столкнуться со средой процедуры, следующий: внешняя процедура возвращает внутреннюю процедуру в зависимости от формальных параметров или локальных переменных внешней процедуры:

outer := 
proc(x)
option escape;
begin
  /* inner procedure to return : */
  y -> x + y
end_proc:
add5 := outer(5)

Несмотря на (немного запутывающий) вывод, x имеет особое значение здесь: это указывает на параметр x outer. Тот параметр в настоящее время имеет значение 5 и не будет больше изменяться. Чтобы смочь получить доступ к тому значению, конкретный экземпляр outer в состоянии того, чтобы быть выполняемым должен храниться в add5:

expr2text(op(add5, 12))

Операнды

Количество операндов среды процедуры зависит от количества локальных и сохраненных переменных внешней процедуры. Детали об операндах остаются недокументированными.

Алгоритмы

Целые числа, появляющиеся в выводе объектов типа DOM_PROC_ENV, не имеют никакого математического значения; они обозначают положения в памяти.