source: project/release/5/datatype/tags/1.6/tests/run.scm @ 36088

Last change on this file since 36088 was 36088, checked in by Ivan Raikov, 22 months ago

datatype release 1.6

File size: 682 bytes
Line 
1; A simple binary tree with numbers:
2(import scheme (chicken base) (chicken format) (chicken string) datatype test)
3
4(define-datatype tree tree?
5  (leaf (n number?))
6  (branch (left tree?) (right tree?)) )
7
8(define t (branch (branch (leaf 33) (leaf 44)) (leaf 55)))
9
10(define (listify t)
11  (cases tree t
12    (leaf (n) n)
13    (branch (left right) (cons (listify left) (listify right))) ) )
14
15(test "listify" '((33 . 44) . 55) (listify t))
16
17
18(define-record-printer (tree x out)
19  (cases tree x
20    (leaf (n) 
21          (fprintf out "~A" n))
22    (branch (left right) 
23            (fprintf out "(~A . ~A)" left right))))
24
25(test "to string" "((33 . 44) . 55)" (->string t))
26
27
28(test-exit)
29
Note: See TracBrowser for help on using the repository browser.