, Я думаю, что мое оригинальное решение является более общим.

олчанию нажатиеAlt+. или звонитAbort[] в пределах оценки вызывает прерывание в настоящее время оцениваемого ввода. Но при работе во FrontEnd мы обычно отправляем ядру последовательность входных данных. Например, если мы введем следующие три выражения в отдельных строках в одномCell а затем нажмитесдвиг+Войти мы получаем бесконечную оценку:

f := CheckAbort[Pause[.1], Abort[]]
While[True, f]
While[True, f]
While[True, f]

Чтобы остановить эту бесконечную оценку, мы должны нажатьAlt+. три раза.

Как определить функциюf в приведенном выше примере таким образом, что нажатиеAlt+. один раз прервет оценку полной последовательности входовне выходя из ядра?

РЕДАКТИРОВАТЬ

Я думаю, что если FrontEnd создает очередь ввода для MathKernel, он, вероятно, также может отменить эту очередь.

Ответы на вопрос(3)

Ваш ответ на вопрос