// { // f := nil; // { // a := 1; // f = ??{ // print(a); // }; // f(); // print 1 // a = 3; // f(); // print 3 // }; // f(); // print 3 // a := 2; // f(); // print 3 // }; // deref and delete f and a // print("done"); // -- new snippet // f := ??{ // print(a); // error: undefined variable 'a' // }; // a := 1; // f(); // -- new snippet { a := 10; // 1 f := nil; // 2 { a := 20; // 3 f = ??{ print(a); g := ??{ print(a); }; g(); }; f(); // -> 20 20 NOTE: the g is stored in 5 while 4 is available! }; f(); // -> 20 20 of 20 10? };