Continuation

https://github.com/eu81273/jsfiddle-console

by dimitrs_papadimitriou

HTML

<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>

JavaScript

//https://medium.com/@dimpapadim3/promises-continuation-monad-in-javascript-f2d70ceb24a4

const toCont=v=>({})callback=>callback(v);

var bind = (cont1, func)=>(c=>cont1(contResult=>func(contResult)(c)));

//the initial 
toCont(x=>x*x) 
   	 		 (y=>toCont(y(4))
     					(t=>console.log(t)));
  

//rewriting it with the bind function
var contComposition  = bind(toCont(x=>x*x) , y=>toCont(y(4)));
//this is still not evaluated. its a deffered computation 

//here we actually collapse the continuation structure and observe the result 
contComposition(t=>console.log(t))