2.6.2 The Continuation

by dimitrs_papadimitriou

HTML

<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
<script src="https://unpkg.com/[email protected]/bundles/rxjs.umd.min.js"></script>

JavaScript

var square = (x) => {
            return resolve => {
                setTimeout(() => {
                    resolve(x * x)
                }, 1000);
            }
        };

        // square(2)(r => {
        //     square(r)(r1 => {
        //         console.log(r1)
        //     });
        // });

        var map = (cont1) => (f) => {
            return x => resolve => {
                cont1(x)(r1 => resolve(f(r1)))
            }
        }

        map(square)(x => x + 3)(3)(console.log)