Messing with generators and iterators

Just playing around...

by Steven Senkus

JavaScript

function * stringParserGen(str, genFn) {
    var i = 0;
    var char;
    
    this.storedString = str;
        
    while (i !== str.length) {
        char = this.storedString[i++]
        yield * genFn(char)
    }

}

function * upperCaseDoubler(ch) {
    yield ch.toUpperCase() + ch.toUpperCase();
}

function * convertToCharCode(ch) {
    yield '[' + ch.charCodeAt(0) + ']';
}

var result = '';
var testString = 'Wes Anderson kitsch, messenger bag literally swag Kickstarter';
var gen = stringParserGen(testString, upperCaseDoubler);
//var gen = stringParserGen(testString, convertToCharCode);

while (true) {
    x = gen.next();
    console.log(x)
    if (x.done) {
        break;
    } else {
        result += x.value;
    }
}
console.log(result);



console.log( stringParserGen.prototype);