Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 0.37 KB | None | 0 0
  1. (define-syntax generator-lambda
  2.   (lambda (stx)
  3.     (syntax-case stx ()
  4.       [(generator-lambda body body* ...)
  5.        (with-syntax ([yield (datum->syntax #'stx 'yield)])
  6.          #'(lambda (yield) body body* ...))])))
  7. (define a
  8.   (generator-lambda
  9.    (let loop ([i 0])
  10.      (when (< i 3)
  11.        (yield i)
  12.        (loop (+ i 1))))))
  13.  
  14. (a (lambda (s) (display s)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement