lambda.js (284B)
1 function f() { 2 var k = 0; 3 4 var g = function() { 5 return ++k; 6 } 7 8 return g; 9 } 10 11 function h() { 12 for (var i = 0; i < 10; ++i) { 13 var vf = f(); 14 assertEq(vf(), 1); 15 assertEq(vf(), 2); 16 for (var j = 0; j < 10; ++j) { 17 assertEq(vf(), j + 3); 18 } 19 } 20 } 21 22 h();