Spaces:
Running
Running
| const genfun = require('./') | |
| const { d } = genfun.formats | |
| function multiply (a, b) { | |
| return a * b | |
| } | |
| function addAndMultiplyNumber (val) { | |
| const fn = genfun(` | |
| function (n) { | |
| if (typeof n !== 'number') { | |
| throw new Error('argument should be a number') | |
| } | |
| const result = multiply(${d(val)}, n + ${d(val)}) | |
| return result | |
| } | |
| `) | |
| // use fn.toString() if you want to see the generated source | |
| return fn.toFunction({multiply}) | |
| } | |
| const addAndMultiply2 = addAndMultiplyNumber(2) | |
| console.log(addAndMultiply2.toString()) | |
| console.log('(3 + 2) * 2 =', addAndMultiply2(3)) | |