- #lang racket/base
- (require racket/promise)
- (provide delay/values)
- (define-syntax-rule (delay/values n . e)
- (let ([tmp (lazy (call-with-values (λ () . e) vector))])
- (apply values (for/list ([i (in-range n)])
- (lazy (vector-ref (force tmp) i))))))
- (define-values (x y)
- (delay/values 2 (printf "wheee\n") (values 1 2)))