fizzbuzz問題をjavascript(WSH)で、Y-Combinator風に

fizzbuzz.jsとして保存。
CScript fizzbuzz.js として実行。

function puts(val){WScript.Echo(val);}

function fizzbuzz(i){
    if(i == 100){
        return;
    }
    var val;
    if(i%15 == 0){
        val = "fizzbuzz";
    }else if(i%3 == 0){
        val = "fizz";
    }else if(i%5 == 0){
        val = "buzz";
    }else{
        val = i;
    }
    puts(val);
    fizzbuzz(i + 1);
}

// y-combinator
var y = function(proc){
    return function(i){
        if(i == 100)
            return;
        var val;
        if(i%15 == 0){
            val = "fizzbuzz";
        }else if(i%3 == 0){
            val = "fizz";
        }else if(i%5 == 0){
            val = "buzz";
        }else{
            val = i;
        }
        puts(val);
        proc(i + 1);
    }
}

// 実行
(y(fizzbuzz))(1);

あまり、実用性は無いが。