Недавно экспериментировал с замыканиями и scope'ами, и в итоге накрутил вот такое:

Код AS3:
function summ(a:Number):Function {
return function(b:Number):Function {
return function(c:Number):Function {
return function(d:Number):String {
return (a+b+c+d).toFixed();
}
}
}
}
var total:String = summ(1)(2)(3)(4);
trace(total);