Array.prototype.map = function(fun : Function) : Void { // aufruf: arr.map(function (x) { return x*2; }); // fun: Funktion mit einem Parameter // wendet fun auf alle Elemente des Arrays an var i : Number = this.length; while (i-- >= 0){ this[i] = fun(this[i]); } }; Array.prototype.filter = function(fun : Function) : Number { // aufruf: arr.filter(function (x) { return x%4 == 0; }); // fun: Funktion mit einem Parameter, die Boolean zurueckgibt // entfernt alle Elemente aus Array, fuer die fun nicht true liefert // returns: Anzahl der Elemente var e : Number; for (var i = 0; i < this.length; i++){ if (fun(this[i]) != true) { this.splice(i,1); } } return this.length; }; Array.prototype.foldl = function(fun : Function, n) { // aufruf: arr.foldl(function (x,y) { return x+y; }, 0) -> addiert alle Elemente // fun: Funktion mit zwei Parametern // n: neutrales Element (z.B. 0 fuer Addition, da x+0 = x; 1 fuer Multiplikation, da x*1 = x) // rechnet alle Elemente wie von fun vorgegeben zusammen (von links beginnend) for (var i=0; i