Pref:: postInput

Действия, после того, как введено

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

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

Синтаксис

Pref::postInput(f)
Pref::postInput(NIL)
Pref::postInput()

Описание

Pref::postInput позволяет действиям пользователя аппарата непосредственно, после того, как введено.

После ввода любой команды MuPAD® x, скажем, и отправка этой команды к ядру, называется f(x), прежде чем ядро начинает обрабатывать вход. Это происходит для любого входа, пока поствход не выключен через вызов Pref::postInput(NIL).

Функциональный f неявно использует option hold, т.е. f видит входную команду, как вводится и проанализировано без любой оценки.

f не может изменить входную команду, которая отправляется в ядро для оценки. Однако f может сохранить вход в некоторой глобальной переменной для дальнейшей обработки, или некоторые другие действия могут быть выполнены.

Pref::postInput() возвращает текущее значение постфункции ввода или NIL, соответственно.

Pref::postInput, возможно в сочетании с Pref::postOutput, полезен для инициализации переменных, чтобы вычислить информацию о статусе, такую как время выполнения для команды, которая должна быть выполнена. Смотрите Пример 2.

Примеры

Пример 1

Постфункция ввода видит вход, как вводится, т.е. перед оценкой ядром:

Pref::postInput(proc() begin 
  print(Unquoted, "input" = args()) 
end):
1 + 2
input = 1 + 2

1 + 2, x = sin(0.1)
input = (1 + 2, x = sin(0.1))

x := 1234; y := 5678
input = (x := 1234)

input = (y := 5678)

Поствход выключен. Эта команда вызывает постфункцию ввода в течение самого последнего времени:

Pref::postInput(NIL):
input = Pref::postInput(NIL)
delete x, y:

Пример 2

Для любой команды время выполнения должно быть вычислено и отображено. Функция, объявленная в Pref::postInput, устанавливает глобальное значение таймера TIME после каждого входа. После вывода результата функция, объявленная в Pref::postOutput, сравнивает текущее время и время начала TIME.

Pref::postInput(() -> (TIME:= time())):
Pref::postOutput(() -> "Time: ".expr2text((time() - TIME)*msec)):
int(cos(x)*exp(sin(x)), x)

Time: 40 msec 

Time: 40 msec
Pref::postInput(NIL): Pref::postOutput(NIL): 
delete TIME:

Пример 3

Как другой пример использования Pref::postInput для того, чтобы хранить информацию, чтобы влиять на вывод, мы комбинируем его с Pref::output, чтобы включать (представленная версия) вход и результат:

Pref::postInput(() -> (LASTINPUT := args())):
Pref::output(() -> val(LASTINPUT) = args()):

Это делает вход “записи MuPAD = результат” на экран при оставлении истории (доступной %) неповрежденный:

int(x, x);
sum((-1)^i/(2*i+1), i=0..infinity);
sin(%)

Параметры

f

Функция, которая будет выполняться, после того, как введено: процедура. Значением по умолчанию этой функции является NIL (никакой поствход).

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

Ранее установите постфункцию ввода.

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

Функции MuPAD