PasteRack.org
Paste # 9185
2016-12-02 13:59:04

Fork as a new paste.

Paste viewed 439 times.


Embed:

  1. #lang racket/base
  2.  
  3. (module values-app racket/base
  4.   (require (for-syntax racket/base)
  5.            syntax/parse/define)
  6.  
  7.   (provide (rename-out [values-app #%app]))
  8.  
  9.   (define-simple-macro (values-app f arg ...)
  10.     (apply f (append (call-with-values (λ () arg) list) ...))))
  11.  
  12. (require 'values-app)
  13.  
  14. (list 1 2 (values 3 4) (values (values 5 6) (values 7 8)))

=>

'(1 2 3 4 5 6 7 8)