summaryrefslogtreecommitdiff
path: root/shared/data-directed-programming.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'shared/data-directed-programming.rkt')
-rw-r--r--shared/data-directed-programming.rkt8
1 files changed, 7 insertions, 1 deletions
diff --git a/shared/data-directed-programming.rkt b/shared/data-directed-programming.rkt
index c756537..6cecaf1 100644
--- a/shared/data-directed-programming.rkt
+++ b/shared/data-directed-programming.rkt
@@ -2,6 +2,7 @@
(provide
make-apply
make-dispatch-table
+ printer
getter
putter
attach-tag
@@ -36,6 +37,9 @@
;; ('op (list ('(types) item)))
(define (make-dispatch-table)
(define dispatch-table '())
+ (define (printer)
+ (newline)
+ (display dispatch-table))
(define (get op types)
(let ((op-datum (find-type op dispatch-table)))
(if op-datum
@@ -67,12 +71,14 @@
(attach-tag op
(list (attach-tag types item)))
dispatch-table))))
- (list dispatch-table get put))
+ (list dispatch-table get put printer))
(define (getter t)
(cadr t))
(define (putter t)
(caddr t))
+(define (printer t)
+ (cadddr t))
(define (make-apply put get)
(lambda (op . args)