Changeset 8144 for lang/javascript

Show
Ignore:
Timestamp:
03/19/08 17:18:38 (6 years ago)
Author:
cho45
Message:

lang/javascript/jsenumerator/trunk/jsenumerator.mini.js,
lang/javascript/jsenumerator/trunk/jsenumerator.nodoc.js:

リリースファイル生成してなかった

Location:
lang/javascript/jsenumerator/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/jsenumerator/trunk/jsenumerator.mini.js

    r7292 r8144  
    1 // JSEnumerator 0.0.0 (c) Copyright (c) 2008 KAYAC Inc. ( http://www.kayac.com/ ) 
     1// JSEnumerator 0.0.0 Copyright (c) 2008 KAYAC Inc. ( http://www.kayac.com/ ) 
     2// http://coderepos.org/share/wiki/JSEnumerator 
    23function Enumerator(a){ 
    34return(arguments.length>1)? new Enumerator().initWithArray(arguments): 
     
    78if(arguments.length==0){ 
    89this.initWithArray([]);}else{ 
     10if(arguments[0] && arguments[0].length){ 
     11this.initWithArray(arguments[0]);}else 
    912if(typeof arguments[0]=="function"){ 
    1013this.initWithFunction(arguments[0]);}else 
    1114if(typeof arguments[0]=="object"){ 
    12 if(arguments[0].hasOwnProperty("length")){ 
    13 this.initWithArray(arguments[0]);}else 
    1415if(arguments[0] instanceof Enumerator){ 
    1516return arguments[0];}else{ 
     
    3940if(e !=Enumerator.StopIteration)throw e;var i=-1;this.next=function(){return cache[++i % cache.length]};return this.next();} 
    4041});}, 
    41 map:function(fun,apply){ 
     42map:function(fun){ 
    4243var ret=[];try{ 
    4344if(this.array){ 
    44 for(;this.pos<this.array.length;this.pos++){ 
    45 ret.push(fun[apply || "call"](this,this.array[this.pos]));} 
    46 }else{ 
    47 while(1)ret.push(fun[apply || "call"](this,this.next()));} 
     45var a=this.array,c=this.pos,len=a.length-c,i=len % 8,type=(fun.length>1)? "apply":"call";if(i>0)do{ 
     46ret.push(fun[type](this,a[c++]));}while(--i);i=parseInt(len>>3);if(i>0)do{ 
     47ret.push( 
     48fun[type](this,a[c++]),fun[type](this,a[c++]), 
     49fun[type](this,a[c++]),fun[type](this,a[c++]), 
     50fun[type](this,a[c++]),fun[type](this,a[c++]), 
     51fun[type](this,a[c++]),fun[type](this,a[c++]) 
     52);}while(--i);this.pos=c;}else{ 
     53while(1)ret.push(fun[fun.length>1 ? "apply":"call"](this,this.next()));} 
    4854}catch(e){ 
    4955if(e !=Enumerator.StopIteration)throw e;} 
    5056return ret;}, 
    51 imap:function(fun,apply){ 
     57imap:function(fun){ 
    5258var self=this;return Enumerator(function(){ 
    53 return fun[apply || "call"](this,self.next()) 
    54 });}, 
     59return fun[fun.length>1 ? "apply":"call"](this,self.next());});}, 
    5560izip:function(){ 
    5661var eles=[this];eles.push.apply(eles,Enumerator(arguments).map(function(i){ 
    5762return Enumerator(i);}));return Enumerator(function(){ 
    5863var args=[];for(var i=0;i<eles.length;i++)args.push(eles[i].next());return args;});}, 
    59 iselect:function(fun,apply){ 
     64iselect:function(fun){ 
    6065var self=this;return Enumerator(function(){ 
    6166do{ 
    62 var val=self.next();}while(!fun[apply || "call"](this,val));return val;});}, 
    63 find:function(fun,apply){ 
     67var val=self.next();}while(!fun[fun.length>1 ? "apply":"call"](this,val));return val;});}, 
     68find:function(fun){ 
    6469do{ 
    65 var ret=this.next();}while(!fun[apply || "call"](this,ret));return ret;}, 
     70var ret=this.next();}while(!fun[fun.length>1 ? "apply":"call"](this,ret));return ret;}, 
    6671reduce:function(fun,init){ 
    6772var self=this;var rval=(typeof init=="undefined")? self.next():init;this.each(function(i){rval=fun.call(this,rval,i)});return rval;}, 
     
    7984if(e !=Enumerator.StopIteration)throw e;f=a.next();return f.next();} 
    8085});}, 
    81 itake:function(a,apply){ 
     86itake:function(a){ 
    8287var self=this;if(typeof(a)=="number"){ 
    8388var i=0;return Enumerator(function(){ 
     
    8792if(typeof(a)=="function"){ 
    8893return Enumerator(function(){ 
    89 var ret=self.next();if(a[apply || "call"](this,ret)) 
     94var ret=self.next();if(a[a.length>1 ? "apply":"call"](this,ret)) 
    9095return ret;else 
    91 throw Enumerator.StopIteration;});return ret;} 
     96throw Enumerator.StopIteration;});} 
    9297}, 
    93 take:function(a,apply){ 
    94 return this.itake(a,apply).toArray();}, 
    95 idrop:function(a,apply){ 
     98take:function(a){ 
     99return this.itake(a).toArray();}, 
     100idrop:function(a){ 
    96101var self=this,i;if(typeof(a)=="number"){ 
    97102for(i=0;i<a;i++)this.next();return this;}else 
    98103if(typeof(a)=="function"){ 
    99 while(a[apply || "call"](this,i=this.next()))true;return Enumerator(function(){ 
     104while(a[a.length>1 ? "apply":"call"](this,i=this.next()))true;return Enumerator(function(){ 
    100105this.next=self.next;return i;});} 
    101106}, 
    102 drop:function(a,apply){ 
    103 return this.idrop(a,apply).toArray();}, 
    104 every:function(fun,apply){ 
     107drop:function(a){ 
     108return this.idrop(a).toArray();}, 
     109every:function(fun){ 
    105110try{ 
    106 while(!(fun[apply || "call"](this,this.next())===false))1;return false;}catch(e){ 
     111while(!(fun[fun.length>1 ? "apply":"call"](this,this.next())===false))1;return false;}catch(e){ 
    107112if(e !=Enumerator.StopIteration)throw e;return true;} 
    108113}, 
    109 some:function(fun,apply){ 
     114some:function(fun){ 
    110115try{ 
    111 while(!(fun[apply || "call"](this,this.next())===true))1;return true;}catch(e){ 
     116while(!(fun[fun.length>1 ? "apply":"call"](this,this.next())===true))1;return true;}catch(e){ 
    112117if(e !=Enumerator.StopIteration)throw e;return false;} 
    113118}, 
     
    115120return this.izip(E(start || 0).countup());}, 
    116121countup:function(){ 
    117 var start=this.next()|| 0;return Enumerator(function(){return start++});} 
     122var start=this.next()|| 0;return Enumerator(function(){return start++});}, 
     123stop:function(){ 
     124throw Enumerator.StopIteration;} 
    118125};Enumerator.prototype.to_a=Enumerator.prototype.toArray;Enumerator.prototype.each=Enumerator.prototype.map;Enumerator.prototype.inject=Enumerator.prototype.reduce;Enumerator.prototype.ifilter=Enumerator.prototype.iselect;Enumerator.StopIteration=new Error("StopIteration"); 
  • lang/javascript/jsenumerator/trunk/jsenumerator.nodoc.js

    r7292 r8144  
    1 // JSEnumerator 0.0.0 (c) Copyright (c) 2008 KAYAC Inc. ( http://www.kayac.com/ ) 
     1// JSEnumerator 0.0.0 Copyright (c) 2008 KAYAC Inc. ( http://www.kayac.com/ ) 
     2// http://coderepos.org/share/wiki/JSEnumerator 
    23function Enumerator (a) { 
    34        return (arguments.length > 1)       ? new Enumerator().initWithArray(arguments) : 
     
    910                        this.initWithArray([]); 
    1011                } else { 
     12                        if (arguments[0] && arguments[0].length) { 
     13                                this.initWithArray(arguments[0]); 
     14                        } else 
    1115                        if (typeof arguments[0] == "function") { 
    1216                                this.initWithFunction(arguments[0]); 
    1317                        } else 
    1418                        if (typeof arguments[0] == "object") { 
    15                                 if (arguments[0].hasOwnProperty("length")) { 
    16                                         this.initWithArray(arguments[0]); 
    17                                 } else 
    1819                                if (arguments[0] instanceof Enumerator) { 
    1920                                        return arguments[0]; 
     
    7778 
    7879         
    79         map : function (fun, apply) { 
     80        map : function (fun) { 
    8081                var ret = []; 
    8182                try { 
    8283                        if (this.array) { 
    83                                 for (; this.pos < this.array.length; this.pos++) { 
    84                                         ret.push(fun[apply || "call"](this, this.array[this.pos])); 
    85                                 } 
     84                                var a = this.array, c = this.pos, len = a.length - c, i = len % 8, type = (fun.length > 1) ? "apply" : "call"; 
     85                                if (i > 0) do { 
     86                                        ret.push(fun[type](this, a[c++])); 
     87                                } while (--i); 
     88                                i = parseInt(len >> 3); 
     89                                if (i > 0) do { 
     90                                        ret.push( 
     91                                                fun[type](this, a[c++]), fun[type](this, a[c++]), 
     92                                                fun[type](this, a[c++]), fun[type](this, a[c++]), 
     93                                                fun[type](this, a[c++]), fun[type](this, a[c++]), 
     94                                                fun[type](this, a[c++]), fun[type](this, a[c++]) 
     95                                        ); 
     96                                } while (--i); 
     97                                this.pos = c; 
    8698                        } else { 
    87                                 while (1) ret.push(fun[apply || "call"](this, this.next())); 
     99                                while (1) ret.push(fun[fun.length > 1 ? "apply" : "call"](this, this.next())); 
    88100                        } 
    89101                } catch (e) { 
     
    94106 
    95107         
    96         imap : function (fun, apply) { 
    97                 var self = this; 
    98                 return Enumerator(function () { 
    99                         return fun[apply || "call"](this, self.next()) 
     108        imap : function (fun) { 
     109                var self = this; 
     110                return Enumerator(function () { 
     111                        return fun[fun.length > 1 ? "apply" : "call"](this, self.next()); 
    100112                }); 
    101113        }, 
     
    115127 
    116128         
    117         iselect : function (fun, apply) { 
     129        iselect : function (fun) { 
    118130                var self = this; 
    119131                return Enumerator(function () { 
    120132                        do { 
    121133                                var val = self.next(); 
    122                         } while (!fun[apply || "call"](this, val)); 
     134                        } while (!fun[fun.length > 1 ? "apply" : "call"](this, val)); 
    123135                        return val; 
    124136                }); 
     
    126138 
    127139         
    128         find : function (fun, apply) { 
     140        find : function (fun) { 
    129141                do { 
    130142                        var ret = this.next(); 
    131                 } while (!fun[apply || "call"](this, ret)); 
     143                } while (!fun[fun.length > 1 ? "apply" : "call"](this, ret)); 
    132144                return ret; 
    133145        }, 
     
    172184 
    173185         
    174         itake : function (a, apply) { 
     186        itake : function (a) { 
    175187                var self = this; 
    176188                if (typeof(a) == "number") { 
     
    186198                        return Enumerator(function () { 
    187199                                var ret = self.next(); 
    188                                 if (a[apply || "call"](this, ret)) 
     200                                if (a[a.length > 1 ? "apply" : "call"](this, ret)) 
    189201                                        return ret; 
    190202                                else 
    191203                                        throw Enumerator.StopIteration; 
    192204                        }); 
    193                         return ret; 
    194                 } 
    195         }, 
    196  
    197  
    198          
    199         take : function (a, apply) { 
    200                 return this.itake(a, apply).toArray(); 
    201         }, 
    202  
    203          
    204         idrop : function (a, apply) { 
     205                } 
     206        }, 
     207 
     208 
     209         
     210        take : function (a) { 
     211                return this.itake(a).toArray(); 
     212        }, 
     213 
     214         
     215        idrop : function (a) { 
    205216                var self = this, i; 
    206217                if (typeof(a) == "number") { 
     
    209220                } else 
    210221                if (typeof(a) == "function") { 
    211                         while (a[apply || "call"](this, i = this.next())) true; 
     222                        while (a[a.length > 1 ? "apply" : "call"](this, i = this.next())) true; 
    212223                        return Enumerator(function () { 
    213224                                this.next = self.next; 
     
    218229 
    219230         
    220         drop : function (a, apply) { 
    221                 return this.idrop(a, apply).toArray(); 
    222         }, 
    223  
    224          
    225         every : function (fun, apply) { 
     231        drop : function (a) { 
     232                return this.idrop(a).toArray(); 
     233        }, 
     234 
     235         
     236        every : function (fun) { 
    226237                try { 
    227                         while (!(fun[apply || "call"](this, this.next()) === false)) 1; 
     238                        while (!(fun[fun.length > 1 ? "apply" : "call"](this, this.next()) === false)) 1; 
    228239                        return false; 
    229240                } catch (e) { 
     
    234245 
    235246         
    236         some : function (fun, apply) { 
     247        some : function (fun) { 
    237248                try { 
    238                         while (!(fun[apply || "call"](this, this.next()) === true)) 1; 
     249                        while (!(fun[fun.length > 1 ? "apply" : "call"](this, this.next()) === true)) 1; 
    239250                        return true; 
    240251                } catch (e) { 
     
    253264                var start = this.next() || 0; 
    254265                return Enumerator(function () { return start++ }); 
     266        }, 
     267 
     268         
     269        stop : function () { 
     270                throw Enumerator.StopIteration; 
    255271        } 
    256272};