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]))