slotAssignCounter
Назначения слотов количеств
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
slotAssignCounter(key
)
slotAssignCounter(key)
возвращает количество slot
присвоения с ключом key
начиная с инициализации счетчика. Счетчик для key
инициализируется с 0
на первом вызове slotAssignCounter(key)
. Предыдущие присвоения с ключом key
не считаются.. Эта функция служит очень технической цели. Обычно, не должно быть никакой потребности в пользователе вызвать эту функцию.
slotAssignCounter
только присвоения количеств на пазы областей и функциональных сред.
slotAssignCounter
был введен как функция проверки зависимости для prog::remember
. Смотрите пример 2.
Мы инициализируем назначение слотов, рассчитывающее паза "foo"
:
slotAssignCounter("foo")
Затем мы задаем функциональный f
с пазом "foo"
:
f := funcenv(f): f::foo := bar:
Теперь счетчик имеет значение 1
:
slotAssignCounter("foo")
Здесь мы задаем функцию рекурсивного вызова foo
какие перегрузки для доменных элементов. Функция помнит вычисленные значения с prog::remember
:
foo := x -> (if x::dom::foo <> FAIL then return(x::dom::foo(x)) end_if; if x = op(x) then procname(x) else map(x, foo) end_if): foo := prog::remember(foo):
Затем мы задаем доменный bar
который не перегружает паз "foo"
:
bar := newDomain("bar"): bar::new := x -> new(bar, x): bar::print := x -> hold(bar)(extop(x)): bar::op := id: foo(bar(2))
Теперь мы добавляем "foo"
паз к bar
:
bar::foo := x -> 4: foo(bar(2))
Новый паз не использовался, потому что foo
взял результат помнить таблицу. Если мы используем функцию зависимости с slotAssignCounter
в prog::remember
, мы можем сделать foo
зная об изменениях в "foo"
- пазы других функций и областей:
foo := x -> (if x::dom::foo <> FAIL then return(x::dom::foo(x)) end_if; if x = op(x) then x else map(x, foo) end_if): foo := prog::remember(foo, () -> slotAssignCounter("foo")): foo(bar(2)); bar::foo := x -> 5: foo(bar(2))
delete foo, bar:
|
Любой объект MuPAD® |
Неотрицательное количество типа DOM_INT
.