Guest User

Untitled

a guest
Mar 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.56 KB | None | 0 0
  1. const compose = (...funcs) => {
  2. if (funcs.length === 0) return args => args
  3. if (funcs.length === 1) return funcs[0]
  4. return funcs.reduce((a, b) => (...args) => a(b(...args)))
  5. }
  6.  
  7. const foo1 = next => args => {
  8. const res = args + 1
  9. console.log('foo1', res)
  10. next(res)
  11. const temp = args - 1
  12. console.log('foo1', temp)
  13. }
  14.  
  15. const foo2 = next => args => {
  16. const res = args + 1
  17. console.log('foo2', res)
  18. next(res)
  19. const temp = args - 1
  20. console.log('foo2', temp)
  21. }
  22.  
  23. compose(foo1, foo2)(args => console.log('res', args))(0)
  24. /*
  25. foo1 1
  26. foo2 2
  27. res 2
  28. foo2 0
  29. foo1 -1
  30. */
Add Comment
Please, Sign In to add comment