piotrkabacinski
4/26/2016 - 7:11 PM

JS monads pseudo code usage example

JS monads pseudo code usage example

/*
 * Monads = i/o stream
 */

var a = 1;

var multiply = function( value ) {
	return value * 2;
};

var add = function( value ) {
	return value + 1;
};

/* 
 * Without monad
 */

a = multiply( a );
a = add( a ); // a => 3


/* 
 * With monad:
 * - seperating app logic from business logic
 * - i/o stream
 */

var monad = new Monad( a );

monad.bind( multiply )
      // returned value by multiply function use as an argument for add function, and so on...
     .bind( add )
		  ...

a = monada.extract(); // => 3