'use strict'; const suc = a => b => c => b(a(b)(c)); const add = a => b => c => d => a(c)(b(c)(d)); const mul = a => b => c => a(b(c)); const exp = a => b => b(a); const pre = a => b => c => a(d => e => e(d(b)))(f => c)(g => g); const sub = a => b => b(pre)(a); const ntc = n => n > 0 ? a => b => a(ntc(n - 1)(a)(b)) : a => b => b; const ctn = a => a(x => x + 1)(0); module.exports = { suc, add, mul, exp, pre, sub, ntc, ctn, };