Closures
Closures are functions that captures variables from its surrounding lexical scope, allowing those variables to persist even after the function is executed outside its original context.
main.w
let createCounter = (): (): num => {
  let var count = 0; // This variable is part of the closure
  return () => {
    count = count + 1;
    return count;
  };
};
let counter = createCounter();
log(counter());
log(counter());
log(counter());
Wing console output
# Run locally with wing console
wing it
1
2
3