14 lines
536 B
ActionScript
14 lines
536 B
ActionScript
//Throw an error if a non-number argument is used. (typeof evaluates to
|
|
// "number" for both integers and reals)
|
|
function checkType(obj:Object):void {
|
|
if(typeof obj != "number")
|
|
throw new ArgumentError("Expected integer or float argument. Recieved " + typeof obj);
|
|
}
|
|
function accumulator(sum:Object):Function {
|
|
checkType(sum);
|
|
return function(n:Object):Object {checkType(n); return sum += n};
|
|
}
|
|
var acc:Function=accumulator(2);
|
|
trace(acc(10));
|
|
trace(acc(4));
|
|
trace(acc("123")); //This causes an ArgumentError to be thrown.
|