В Lua и Python это - очень естественная вещь сделать "просто кодирование", потому что момент Вы ссылаетесь на что-то, которое это не параметр, при создании закрытия. (таким образом, большинство из них будет довольно тускло как примеры.)
Что касается конкретного случая, вообразите систему отмены/восстановления, где шаги являются парами (отмена (), восстановление ()) закрытия. Более громоздкие способы сделать, который мог бы быть к также: (a) Заставьте unredoable классы иметь специальный метод с универсально тупыми аргументами, или (b) разделите UnReDoOperation на подклассы многочисленные времена.
Другим конкретным примером являются бесконечные списки: Вместо того, чтобы работать с genericized контейнерами, Вы frob функция, которая получает следующий элемент. (это - часть питания итераторов.) В этом случае можно или сохранить просто немного состояния (следующее целое число для list-of-all-nonnegative-integers или подобный) или ссылка на положение в фактическом контейнере. Так или иначе это - функция, которая ссылается на что-то, что является вне себя. (в случае бесконечного списка переменные состояния должны быть переменными закрытия, потому что иначе они были бы чистыми для каждого вызова)
Отправить возврат, а затем *. Это сделает резервную копию курсора, а затем напечатает * над символом, который они только что напечатали. Если соединение медленное, персонаж может находиться там некоторое время. Также ищите '\ n' и не пытайтесь его переписать.
During your telnet sessions in telnet.exe you can pop up the telnet prompt by pressing Ctrl + ]
After that, type "set localecho
" or "unset localecho
" to switch localecho on or off.
Press Enter to return to your telnet session.