misc
::breakmap
Останавливает отображение, в настоящее время сделанное maprec
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
misc::breakmap()
misc::breakmap
(), останавливает рекурсивное приложение функции ко всем подвыражениям выражения что misc::maprec
только продолжает работать.
misc::breakmap
полезно как команда в процедуре, сопоставленной misc::maprec
в случае, если мы знаем, что закончены с нашей работой, и остающееся рекурсивное отображение не необходимо.
Мы хотим знать, содержит ли данное выражение конкретный тип t
. Как только мы нашли первое вхождение t
, мы можем отключить наш поиск.
myfound := FALSE: misc::maprec(hold(((23+5.0)/3+4*I)*PI), {DOM_COMPLEX}=proc() begin myfound := misc::breakmap(); args() end_proc): myfound
Что мы делали? Мы сказали misc::maprec
только спуститься по дереву выражений и искать подвыражения типа DOM_COMPLEX
; и, каждый раз, когда такое подвыражение должно быть найдено, чтобы применить определенную процедуру к нему. Та процедура останавливает рекурсивное отображение, помнит, что мы нашли тип, который мы искали и возвращаем точно его аргумент, таким образом что результат, возвращенный misc::maprec
равняется входу. В примере ниже, мы тестируем, содержит ли наше данное выражение тип DOM_POLY
.
myfound := FALSE: misc::maprec(hold(((23+5.0)/3+4*I)*PI), {DOM_POLY}=proc() begin myfound := misc::breakmap(); args() end_proc): myfound
Обратите внимание на то, что вы не должны использовать этот метод при поиске подвыражений данного типа; вызов hastype
конечно, более удобно.
misc::breakmap
всегда возвращает TRUE
.