Functor js
https://github.com/eu81273/jsfiddle-console
HTML
<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
JavaScript
var functor= function (val) {
this.val= val;
this.map = function(func) { return new functor(func(val))}
}
var f1 = new functor(4);
var f2 = f1.map(x=>x*x);