胃ヲタ

朝のコーディングは清々しいiikajsldkfjlkajslkf!!!!!!!

また,朝コーヒーを飲みながらのDiana Krallも格別だ.


某t-fridge日記でFizzBuzzをといているのを見て思ったんだけど,

やっぱ,この手の問題にはrangeは最適だ.

そういや,javascriptにはschemeのiotaとかpythonのrangeに相当するものがないので書いてみる.

// function iota
// works as range of python
var iota = function () {
    if (arguments.length == 1) {
        return arguments.callee (0, arguments[0], 1);
    } else if (arguments.length == 2) {
        return arguments.callee (arguments[0], arguments[1], 1);
    } else if (arguments.length == 3) {
        this.arguments = arguments;
        return (function (ar) {
            for (var i = this.arguments[0];
                  (this.arguments[2] > 0) ? (i < this.arguments[1]) : (i > this.arguments[1]);
                  i += this.arguments[2]) {
                ar.push (i);
            }
            return ar;
        }).call (this, new Array ());
    } else {
        throw new String ("iota : required more than 1 argument");
    }
};

ちょっと便利かも.