\cat::

Основная категория

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

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

Описание

Cat::BaseCategory является самой общей суперкатегорией всех категорий, заданных пакетом CAT. Любая область в пакете Dom имеет эту категорию.

Методы, заданные Cat::BaseCategory, связаны с преобразованием типов и тестированием равенства, они не связаны с алгебраической структурой.

Методы

развернуть все

Основные методы

convert(x)

convert_to(x, T)

equal(x, y)

Обратите внимание на то, что этот метод не перегружает функциональный _equal, т.е. оператор =. Функциональный _equal не может быть перегружен.

expr(x)

Методы преобразования

coerce(x)

Реализация обеспечила попытки преобразовать x в элемент этой области первым вызовом dom::convert(x) и затем, если это перестало работать, x::dom::convert_to(x, dom); это возвращает FAIL, если оба метода перестали работать.

equiv(x, y)

Реализация обеспечила попытки преобразовать x и y в элементы этой области и затем вызывает dom::equal с этими элементами. Это возвращает FAIL, если сбои преобразования или тест равенства возвращают UNKNOWN.

new(x)

Учитывая доменный D, выражение формы D(x,...) приводит к вызову формы D::new(x,...).

Реализация, обеспеченная здесь, пытается преобразовать x путем вызова dom::convert(x) и возвращает результат. Это повышает ошибку, если dom::convert возвращает FAIL.

print(x)

Не распечатывайте непосредственно в этом методе путем вызова функционального print, например!

Реализацией, обеспеченной здесь, является dom::expr.

testtype(x, T)

Этот метод должен возвратить TRUE, если это может решить, что x имеет тип T, FALSE, если это может решить, что x не имеет типа T и FAIL, если это не может решить тест.

Этот метод называется в трех различных ситуациях: Или если аргумент x имеет эту область, или если T является этой областью, или если T является элементом этой области. Таким образом следящий за тремя ситуациями может возникнуть:

  • x является элементом текущей области.

    В этом случае это должно быть протестировано, если x может рассматриваться как элемент типа T, который может или быть областью или ввести выражение. По умолчанию это только верно, если доменным типом x является T, или если T является доменным конструктором, для которого x::dom::hasProp(x, T) является TRUE. В частности, x является, по умолчанию, не типа T, если T является типом Библиотеки типов.

  • T является текущей областью.

    В этом случае это должно быть протестировано, если x может рассматриваться как элемент этой области. Реализацией по умолчанию, если, это - TRUE, только если доменным типом x является dom.

  • T является элементом текущей области.

    В этом случае T рассматривается как выражение типа. Обеспеченная реализация по умолчанию возвращает TRUE, если доменным типом x является T и FAIL если нет. Специальное правило содержит, если T является областью фасада: в этом случае coerce(x,T) называется, если это успешно, TRUE возвращен и FAIL если нет.

Технические методы

new_extelement(x, …)

Когда выражение, new(D,x,...) оценен и D, является областью с методом "new_extelement", затем D::new_extelement(D,x,...) оценен и возвращен как результат.

Ядро или области фасада должны задать этот метод, потому что в противном случае функциональный new возвратил бы “контейнерный” элемент D, а не “необработанный” элемент, как предназначено.

Реализация, обеспеченная здесь, возвращает результат D::new(x,...).