//>>built define("dojox/lang/functional/fold",["dojo/_base/lang","dojo/_base/array","dojo/_base/window","./lambda"],function(_1,_2,_3,df){ var _4={}; _1.mixin(df,{foldl:function(a,f,z,o){ if(typeof a=="string"){ a=a.split(""); } o=o||_3.global; f=df.lambda(f); var i,n; if(_1.isArray(a)){ for(i=0,n=a.length;i0;--i,z=f.call(o,z,a[i],i,a)){ } return z; },foldr1:function(a,f,o){ if(typeof a=="string"){ a=a.split(""); } o=o||_3.global; f=df.lambda(f); var n=a.length,z=a[n-1],i=n-1; for(;i>0;--i,z=f.call(o,z,a[i],i,a)){ } return z; },reduce:function(a,f,z){ return arguments.length<3?df.foldl1(a,f):df.foldl(a,f,z); },reduceRight:function(a,f,z){ return arguments.length<3?df.foldr1(a,f):df.foldr(a,f,z); },unfold:function(pr,f,g,z,o){ o=o||_3.global; f=df.lambda(f); g=df.lambda(g); pr=df.lambda(pr); var t=[]; for(;!pr.call(o,z);t.push(f.call(o,z)),z=g.call(o,z)){ } return t; }}); });