Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const compose = (...funcs) => {
- if (funcs.length === 0) return args => args
- if (funcs.length === 1) return funcs[0]
- return funcs.reduce((a, b) => (...args) => a(b(...args)))
- }
- const foo1 = next => args => {
- const res = args + 1
- console.log('foo1', res)
- next(res)
- const temp = args - 1
- console.log('foo1', temp)
- }
- const foo2 = next => args => {
- const res = args + 1
- console.log('foo2', res)
- next(res)
- const temp = args - 1
- console.log('foo2', temp)
- }
- compose(foo1, foo2)(args => console.log('res', args))(0)
- /*
- foo1 1
- foo2 2
- res 2
- foo2 0
- foo1 -1
- */
Add Comment
Please, Sign In to add comment