Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 1st, 2012  |  syntax: None  |  size: 0.34 KB  |  hits: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #lang racket/base
  2.  
  3. (require racket/promise)
  4. (provide delay/values)
  5.  
  6. (define-syntax-rule (delay/values n . e)
  7.   (let ([tmp (lazy (call-with-values (λ () . e) vector))])
  8.     (apply values (for/list ([i (in-range n)])
  9.                     (lazy (vector-ref (force tmp) i))))))
  10.  
  11. (define-values (x y)
  12.   (delay/values 2 (printf "wheee\n") (values 1 2)))