Advertisement
Guest User

Untitled

a guest
May 26th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.45 KB | None | 0 0
  1. (define-syntax define-closures
  2. (syntax-rules ()
  3. [(_ ([var value] ...) [name body] ...)
  4. (define-values (name ...)
  5. (let ([var value] ...)
  6. (letrec ([name body] ...)
  7. (values name ...))))]))
  8.  
  9. (define-closures ([stack '()])
  10. [push (lambda (x)
  11. (set! stack (cons x stack)))]
  12. [pop (lambda ()
  13. (let ([x (car stack)])
  14. (set! stack (cdr stack))
  15. x))]
  16. [init (lambda ()
  17. (set! stack '()))])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement