オブジェクトが深くネストした JSONデータを扱う際に、途中のプロパティの存在チェックを毎回やるのが非常に手間で、こんなとき JavaScript にも Maybeモナドがあると便利なのになーとか常々考えてました。 と思っていたら RubyでMaybe なんて楽しげなことをやってるのを見かけたので、JavaScript でも書いてみようかと思い立った次第。 とりあえずモナド則を完全にガン無視でMaybeだけ書いてみました。 Maybe = { ret: function(e) { return new Just(e); }, } function Just(e) { this.value = e; } Just.prototype.bind = function(func) { return func(this.value); } Nothing = { bind: function()