Lambda Calculus.
SUBTRACTION = m => n => n(PREDECESSOR)(m) let ONE = f => x => f(x) let TWO = f => x => f(f(x)) let SUCCESSOR = n => f => x => f( n(f)(x)); let THREE = SUCCESSOR(TWO); var hi = (x)=>{ console.log(x); return x+1; } let PREDECESSOR = n => f => x => n(g => h => h(g(f)))(_ => x)(u => u); let SUBTRACTION