GoodParts serial_maker2
by Joe LeMonnier
HTML
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
JavaScript
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
var serial_maker = function ( ) {
var prefix = '';
var seq = 0;
return {
set_prefix: function (p) {
prefix = String(p);
},
set_seq: function (s) {
seq = s;
},
gensym: function ( ) {
var result = prefix + seq;
seq += 1;
console.log('seq=',seq)
return result;
}
};
};
var seqer = serial_maker( );
var seqr=serial_maker();
//var number=serial_maker.set_prefix(6)
console.log(seqer)
seqer.set_prefix('Q');
seqr.set_prefix('o')
seqer.set_seq(1002);
var unique = seqer.gensym( ); // unique is "Q1000
var uniquea = seqer.gensym( );
var uniq= seqr.gensym( );
//console.log('unique=',unique)
//console.log('uniquea=',uniquea)
console.log('uniq=',uniq)
var add = function (a, b) {
return a + b;
};
console.log('1+2=',add(1,2))
Function.method('curry', function ( ) {
var slice = Array.prototype.slice,
args = slice.apply(arguments),
that = this;
console.log('arguments=',arguments)
//console.log('slice=',slice);
console.log('args=',args);
console.log('this=',this)
return function ( ) {
return that.apply(null, args.concat(slice.apply(arguments)));
};
});
var add1 = add.curry(1);
console.log(add1(6)); // 7
var array=[1,2,3,4,5]
var slicer = Array.prototype.slice;
console.log('slice=',array.slice(2))
console.log('slicer=',slicer.apply([3]))