123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- if(!dojo._hasResource["dojox.lang.functional.scan"]){
- dojo._hasResource["dojox.lang.functional.scan"] = true;
- dojo.provide("dojox.lang.functional.scan");
- dojo.require("dojox.lang.functional.lambda");
- (function(){
- var d = dojo, df = dojox.lang.functional, empty = {};
- d.mixin(df, {
-
- scanl: function(/*Array|String|Object*/ a, /*Function|String|Array*/ f, /*Object*/ z, /*Object?*/ o){
-
-
-
- if(typeof a == "string"){ a = a.split(""); }
- o = o || d.global; f = df.lambda(f);
- var t, n, i;
- if(d.isArray(a)){
-
- t = new Array((n = a.length) + 1);
- t[0] = z;
- for(i = 0; i < n; z = f.call(o, z, a[i], i, a), t[++i] = z);
- }else if(typeof a.hasNext == "function" && typeof a.next == "function"){
-
- t = [z];
- for(i = 0; a.hasNext(); t.push(z = f.call(o, z, a.next(), i++, a)));
- }else{
-
- t = [z];
- for(i in a){
- if(!(i in empty)){
- t.push(z = f.call(o, z, a[i], i, a));
- }
- }
- }
- return t;
- },
- scanl1: function(/*Array|String|Object*/ a, /*Function|String|Array*/ f, /*Object?*/ o){
-
-
-
- if(typeof a == "string"){ a = a.split(""); }
- o = o || d.global; f = df.lambda(f);
- var t, n, z, first = true;
- if(d.isArray(a)){
-
- t = new Array(n = a.length);
- t[0] = z = a[0];
- for(var i = 1; i < n; t[i] = z = f.call(o, z, a[i], i, a), ++i);
- }else if(typeof a.hasNext == "function" && typeof a.next == "function"){
-
- if(a.hasNext()){
- t = [z = a.next()];
- for(var i = 1; a.hasNext(); t.push(z = f.call(o, z, a.next(), i++, a)));
- }
- }else{
-
- for(var i in a){
- if(!(i in empty)){
- if(first){
- t = [z = a[i]];
- first = false;
- }else{
- t.push(z = f.call(o, z, a[i], i, a));
- }
- }
- }
- }
- return t;
- },
- scanr: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object*/ z, /*Object?*/ o){
-
-
-
- if(typeof a == "string"){ a = a.split(""); }
- o = o || d.global; f = df.lambda(f);
- var n = a.length, t = new Array(n + 1), i = n;
- t[n] = z;
- for(; i > 0; --i, z = f.call(o, z, a[i], i, a), t[i] = z);
- return t;
- },
- scanr1: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object?*/ o){
-
-
-
- if(typeof a == "string"){ a = a.split(""); }
- o = o || d.global; f = df.lambda(f);
- var n = a.length, t = new Array(n), z = a[n - 1], i = n - 1;
- t[i] = z;
- for(; i > 0; --i, z = f.call(o, z, a[i], i, a), t[i] = z);
- return t;
- }
- });
- })();
- }
|