I love this programming technique, mostly because it is so easy to just drop into your code and instantly trade execution time for memory usage. More information can be found
here.
[as]package{
public class Memo{
static public function Memoize(obj:*,func:Function):Function{
// ***