-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpil-adt.rkt
43 lines (29 loc) · 930 Bytes
/
pil-adt.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#lang racket
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;; PIL-ADT ;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require "abstracties.rkt")
(require "positie-adt.rkt")
(provide maak-adt-pil)
(define (maak-adt-pil pil-pos)
(let ((verzameld? #f)
(type 'pil))
(define (verwijder! teken-adt score-adt)
(verwijder-eetbaar-adt! teken-adt dispatch-pil score-adt)
(set! verzameld? #t))
(define (teken! teken-adt)
((teken-adt 'teken-eetbaar-adt!) dispatch-pil))
(define (reset! teken-adt)
(set! verzameld? #f)
(reset-eetbaar-adt! teken-adt dispatch-pil))
(define (dispatch-pil msg)
(case msg
('x (pil-pos 'x))
('y (pil-pos 'y))
('pos pil-pos)
('type type)
('reset! reset!)
('verwijder! verwijder!)
('verzameld? verzameld?)
('teken! teken!)))
dispatch-pil))