Binary Tree Catamorphism

by dimitrs_papadimitriou

HTML

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

JavaScript

var n = (l, v, r) => ({
    l: l,
    v: v,
    r: r,
    map: f => n(l.map(f), f(v), r.map(f)),
     
  });
  
  var lf = v => ({
    v: v, 
    map: f => lf(f(v)),
    });
  
  var inst = n(lf(2), 2, lf(3));