Advertisement
Guest User

Untitled

a guest
Nov 29th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 0.68 KB | None | 0 0
  1. (define (make-position x y)
  2.   (define (get-x)
  3.     x)
  4.  
  5.   (define (get-y)
  6.     y)
  7.  
  8.   (define (set-x! new-value)
  9.     (set! x new-value))
  10.  
  11.   (define (set-y! new-value)
  12.     (set! y new-value))
  13.  
  14.   (define (position-dispatcher msg)
  15.     (cond ((eq? msg 'get-x) get-x)
  16.           ((eq? msg 'get-y) get-y)
  17.           ((eq? msg 'set-x!) set-x!)
  18.           ((eq? msg 'set-y!) set-y!)
  19.           ))
  20.  
  21.   position-dispatcher)
  22.  
  23. (define p1 (make-position 10 20))
  24. (define p2 (make-position 30 40))
  25.  
  26. (define (print x)
  27.   (display x)
  28.   (newline))
  29.  
  30. (print ((p1 'get-x)))
  31. (print ((p1 'get-y)))
  32. (print "---")
  33.  
  34. ((p1 'set-x!) 5000)
  35.  
  36. (print ((p1 'get-x)))
  37. (print ((p1 'get-y)))
  38. (print "---")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement