listlib:: insert

Вставьте элемент в список

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

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

Синтаксис

listlib::insert(list, element, <function>)

Описание

listlib::insert(list, element) вставляет element в list.

С функциональным listlib::insert любой элемент может быть вставлен в любой список.

С третьим дополнительным аргументом функция может состоять в том, учитывая, что сравнивают элементы списка с элементом, чтобы вставить, и к тому же определяет положение, элемент вставляется. Заданная функция вызвана двумя элементами и должна возвратить TRUE, если эти два элемента находятся в правильном порядке, в противном случае FALSE (см. следующий абзац).

Заданная функция называется шаг за шагом с элементом списка так же первым аргументом и данным элементом как второй аргумент, пока это не возвращает FALSE. Затем данный элемент вставляется в список перед последним доказанным элементом (см. Пример 2).

Примечание

Список должен быть упорядочен относительно функции порядка, в противном случае элемент мог быть вставлен в неправильном месте.

Если никакому третьему аргументу не дают, функциональный _less используется. Если никакой порядок элементов относительно _less не задан, функция должна быть дана, в противном случае ошибка появляется. Системная функция sysorder всегда может использоваться.

Примеры

Пример 1

Вставьте 3 в данный упорядоченный список:

listlib::insert([1, 2, 4, 5, 6], 3)

Вставьте 3 в данный убывающий упорядоченный список. Функция вставки представляет и сохраняет порядок списка:

listlib::insert([6, 5, 4, 2, 1], 3, _not@_less)

Поскольку идентификаторы не могут быть упорядочены _less, другая функция должна быть дана, например, функция, которая представляет системы внутренний порядок:

listlib::insert([a, b, d, e, f], c, sysorder)

Пример 2

Поскольку никакая функция не дана как третий аргумент, функциональный _less используется. _less называется: _less(1, 3), _less(2, 3), _less(4, 3) и затем 3 вставляются перед 4:

listlib::insert([1, 2, 4], 3)

Если списку не упорядочивают право, то положение вставки могло быть неправильным:

listlib::insert([4, 1, 2], 3)

Пример 3

Следующий пример показывает, как выражения могут быть упорядочены определяемым пользователем приоритетом. Это распоряжение дано функцией с именем priority, который возвращает меньшее число, когда выражение имеет тип с более высоким приоритетом:

priority := X -> contains(["_power", "_mult", "_plus"], type(X)):
priority(x^2), priority(x + 2)

Функциональный sortfunc возвращает TRUE, если оба данных аргумента находятся в правильном порядке, т.е. первый аргумент имеет более высокое (или равный) приоритет, чем второй аргумент:

sortfunc := (X, Y) -> bool(priority(Y) > priority(X)):
sortfunc(x^2, x + 2), sortfunc(x + 2, x*2)

Теперь выражение x*2 вставляется в “правильном” месте в списке:

listlib::insert([x^y, x^2, x*y, -y, x + y], x*2, sortfunc)

Параметры

list

Список MuPAD®

element

Выражение MuPAD, чтобы вставить

function

Функция, которая определяет положение вставки

Возвращаемые значения

Учитывая список, увеличенный со вставленным элементом

Смотрите также

Функции MuPAD