Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
moo_b (moo_a M).bbind (a_to_b function) {...}
bbind :: (a -> b) -> moo a -> moo b
bbind = fmap
.bbind(function(cityName) { return new MaybeMoonad(cityName); })
XMoonad.prototype.bbind = function(mf) {
f = mf.value;
...
}
Официально это набор лучших практик, которыми следует руководствоваться при решении «типичных задач». Неофициально — просто набор костылей для языков, в которых нет встроенных средств для решения типичных проблем.
MaybeMoonad.prototype.bbind = function(f) {
if(this.value == null) { // было (!this.value)
return this;
}
...
Что-то издали похожее на монады