function makeCounter() {
var currentCount = 1;
return function() { // ()
return ++currentCount;
};
}
var counter = makeCounter(); // ()
// каждый вызов увеличивает счётчик и возвращает результат
print( counter() ); // 1
print( counter() ); // 2
print( counter() ); // 3
// создать другой счётчик, он будет независим от первого
var counter2 = makeCounter();
print( counter2() ); // 1
ZnVuY3Rpb24gbWFrZUNvdW50ZXIoKSB7CnZhciBjdXJyZW50Q291bnQgPSAxOwoKcmV0dXJuIGZ1bmN0aW9uKCkgeyAvLyAoKQpyZXR1cm4gKytjdXJyZW50Q291bnQ7Cn07Cn0KCnZhciBjb3VudGVyID0gbWFrZUNvdW50ZXIoKTsgLy8gKCkKCi8vINC60LDQttC00YvQuSDQstGL0LfQvtCyINGD0LLQtdC70LjRh9C40LLQsNC10YIg0YHRh9GR0YLRh9C40Log0Lgg0LLQvtC30LLRgNCw0YnQsNC10YIg0YDQtdC30YPQu9GM0YLQsNGCCnByaW50KCBjb3VudGVyKCkgKTsgLy8gMQpwcmludCggY291bnRlcigpICk7IC8vIDIKcHJpbnQoIGNvdW50ZXIoKSApOyAvLyAzCgovLyDRgdC+0LfQtNCw0YLRjCDQtNGA0YPQs9C+0Lkg0YHRh9GR0YLRh9C40LosINC+0L0g0LHRg9C00LXRgiDQvdC10LfQsNCy0LjRgdC40Lwg0L7RgiDQv9C10YDQstC+0LPQvgp2YXIgY291bnRlcjIgPSBtYWtlQ291bnRlcigpOwpwcmludCggY291bnRlcjIoKSApOyAvLyAx