Many thanks to Hanzík for the Czech translations!

tcc-case-title
немного geeky  немного geeky

Случай 150

Отменено

Один монах спросил учителя Кайму: “Каким должно быть идеальное поведение отмены?”

Кайму ответил: “Оно должно отменять последнее значительное действие пользователя, затем действие до него, и так далее до начала времён”.

Монах спросил: “Как насчёт изменения размера окна?”

Кайму ответил: “В идеале, его должно быть можно отменить”.

Монах спросил: “Сохранение файла?”

Кайму ответил: “Тоже должно быть можно отменить”.

Монах спросил: “Отправление письма по электронной почте?”

Кайму ответил: “Тоже должно быть можно отменить”.

Монах рассмеялся и сказал: “Абсурд! Как можно реализовать такое поведение?”

Учитель запустил приложение на своём компьютере: “Вот редактор моей собственной разработки, который реализует Идеальную Отмену”.

Монах набрал текст. Затем он удалил слово, изменил размер окна, сохранил файл и послал его по электронной почте. Когда письмо появилось у него на телефоне, он четырежды нажал кнопку Отмена в редакторе.

Монах сказал: “Нет эффекта”.

Кайму ответил: “Null. Время изменилось как только Вы набрали текст. В этот момент, когда не хватило памяти для предыдущей итерации, Вы удалили слово, изменили размер окна, сохранили файл и послали его по электронной почте”.

Монах победно указал учителю: “Мой Null против Вашего! Ибо во второй якобы итерации я мог бы последовательно нажать Отмена четыре раза, как я это сделал в первой итерации... Создавая тем самым неизбежный цикл!”

Кайму скрестил руки на груди и с удовлетворением ответил: “Действия второй итерации не были значимыми, так как они не могли не произойти в следствии изменения времени. Таким образом, они не являются кандидатами для Идеальной Отмены. Только Ваши четыре нажатия Отмена в первой итерации, которые инициировали вторую итерацию, были значимыми”.

Монах спросил: “Так что же стало с этими четырьмя отменами?”

Кайму ответил: “Благодаря четырём отменам во второй итерации... они были отменены”.

Topics...  undo, state