Accumulator = function(n) adder = {"sum": n} adder.plus = function(n) self.sum += n return self.sum end function adder.getSum = function(n) obj = self _sum = function(n) return obj.plus(n) end function return @_sum end function return adder.getSum end function acc1 = Accumulator(0) print acc1(10) // prints 10 print acc1(2) // prints 12 acc2 = Accumulator(1) print acc2(100) // prints 101 print acc1(0) // prints 12