# explicit closure support for Io getSlot("Block") capture := method( closure := Object clone call message arguments foreach(arg, closure setSlot(arg name, call sender doMessage(arg, call sender)) ) getSlot("self") setScope(closure) ) # f := method( # a := list # method(x, a append(x); a sum) capture(a) # ) # # g := f # g(1) println # g(2) println # g(3) println