javascript Monad

a simple monad demonstration from http://www.youtube.com/watch?v=b0EF0VTs9Dc

by greenlaw110

JavaScript

function MONAD () {
    var prototype = Object.create(null);
    function unit(value) {
        var monad = Object.create(prototype);
        monad.bind = function (func, args) {
            return func.apply(undefined,
                           [value].concat(
                               Array.prototype.slice.apply(args || [])));
        }
        return monad;
    }
    return unit;
}
var identity = MONAD();
var monad = identity("Hello world");
monad.bind(alert);