PasteRack.org
Paste # 1219
2019-06-12 23:16:51

Fork as a new paste.

Paste viewed 401 times.


Embed:

  1. #!/usr/bin/racket
  2. #lang racket
  3. (define-syntax val
  4.     (lambda (stx)
  5.       (syntax-case stx ()
  6.         [val (identifier? (syntax val)) (syntax (get-val))])))
  7.  
  8. (define-values (get-val put-val!)
  9.     (let ([private-val 0])
  10.       (values (lambda () private-val)
  11.               (lambda (v) (set! private-val v)))))
  12.  
  13. val
  14. (+ val 3)

=>

0

3