extop
Внутренние операнды доменного элемента
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
extop(object
) extop(object
,i
) extop(object
,i .. j
)
extop(object)
возвращает все операнды доменного элемента object
.
extop(object, i)
возвращает i
-th операнд.
extop(object, i..j)
возвращает i
-th в j
-th операнд.
Для объектов типа основных данных, таких как выражения, наборы, списки, таблицы, массивы, hfarrays и т.д., extop
приводит к тем же операндам как функциональный op
. См. соответствующую документацию для получения дополнительной информации об операндах. Основное различие для функционального op
- то, что extop
не может быть перегружен. Поэтому это гарантирует прямой доступ к операндам внутреннего представления элементов области библиотеки. Как правило, extop
используется в реализации метода "op"
области библиотеки, которая перегружает функцию op
системы.
Доменный элемент состоит из ссылки на соответствующую область и последовательность значений, представляющих ее содержимое. Функциональный extop
предоставляет доступ к области и операндам этой внутренней последовательности данных.
extop(object)
возвращает последовательность всех внутренних операндов кроме 0-th. Этот вызов эквивалентен extop(object, 1..extnops(object))
.
extop(object, i)
возвращает i
-th внутренний операнд. В частности, область объекта возвращена extop(object, 0)
, если object
является элементом области библиотеки. Если object
является элементом области ядра, вызов, extop(object, 0)
эквивалентен op(object, 0)
.
extop(object, i..j)
возвращает i
-th в j
-th внутренние операнды object
как последовательность выражения; i
и j
должны быть неотрицательными целыми числами с i
, меньшим или равным j
. Эта последовательность эквивалентна extop(object, k) $k = i..j
.
extop
возвращает FAIL
, если заданный операнд не существует. Cf. Пример 4.
Операнды последовательности выражения являются ее элементами. Обратите внимание на то, что такие последовательности не сглажены extop
.
Мы создаем новый доменный d
и используем функциональный new
, чтобы создать элемент этого типа. Его внутреннее представление данных является последовательностью аргументов, переданных new
:
d := newDomain("demo"): e := new(d, 1, 2, 3): extop(e)
Могут быть выбраны отдельные операнды:
extop(e, 2)
Области значений операндов могут быть выбраны:
extop(e, 1..2)
0-th операнд доменного элемента является своей областью:
extop(e, 0)
delete d, e:
Во-первых, новый доменный d
задан через newDomain
. Метод "new"
служит для создания элементов этого типа. Внутреннее представление области является последовательностью всех аргументов этого метода "new"
:
d := newDomain("d"): d::new := () -> new(dom, args()):
Функция op
системы перегружается следующим методом "op"
этой области. Это должно возвратить элементы отсортированной копии внутренней последовательности данных. В реализации метода "op"
функциональный extop
используется, чтобы получить доступ к внутренним данным:
d::op := proc(x, i = null()) local internalData; begin internalData := extop(x); op(sort([internalData]), i) end_proc:
Из-за этой перегрузки, op
возвращает различные операнды, чем extop
:
e := d(3, 7, 1): op(e); extop(e)
delete d, e:
Для типов данных ядра, таких как наборы, списки и т.д., extop
всегда возвращает те же операнды как op
:
extop([a, b, c]) = op([a, b, c])
Выражения имеют тип данных ядра DOM_EXPR
, таким образом extop(sin(x), 0)
эквивалентен op(sin(x), 0)
:
domtype(sin(x)), extop(sin(x), 0) = op(sin(x), 0)
Последовательности выражения не сглажены:
extop((1, 2, 3), 0), extop((1, 2, 3))
|
Произвольный объект MuPAD® |
|
Неотрицательные целые числа |
последовательность операндов или заданного операнда. FAIL
возвращен, если никакой соответствующий операнд не существует.