Guest User

Untitled

a guest
Apr 26th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.47 KB | None | 0 0
  1. function program() {
  2. return [[
  3. window.confirm, 'Have a good day?'],[
  4. (truthy, falsy, pred) => pred ? truthy : falsy, 'Great', 'Sorry'],[
  5. console.info
  6. ]]
  7. }
  8.  
  9. function run(main) {
  10. const flatten = (args = []) => args.map(arg => Array.isArray(arg) ? run([arg])() : arg)
  11. return main
  12. .map(([fn, ...args]) => ([fn, ...flatten(args)]))
  13. .map(([fn, ...args]) => fn.bind(null, ...args))
  14. .reduce((thunk, suspend) => suspend.bind(null, thunk()))
  15. }
  16.  
  17. run(program())()
Add Comment
Please, Sign In to add comment