typed-racket/typed-racket-test/fail/all-bad-syntax.rkt
2014-12-16 10:07:25 -05:00

26 lines
744 B
Racket

#;
(exn-pred 2)
#lang typed-scheme
(require scheme/list)
(define-type-alias (BT a) (U Boolean (node a)))
(define-struct: (a) node ([key : a] [l : (BT a)] [r : (BT a)]))
(: traverse-4 (All (a i) (BT a) (a ( -> i) ( -> i) -> i) i -> i))
(define (traverse-4 abt f i)
(cond
[(boolean? abt) i]
[(node? abt) (f (node-key abt)
(lambda () (traverse-4 (node-l abt) f i))
(lambda () (traverse-4 (node-r abt) f i)))]))
(define: (a) (inorder-4 [abt : (BT a)]) : (Listof a)
(traverse-4 abt
(lambda: ([key : a] [lt : ( -> (Listof a))] [rt : ( -> (Listof a))])
(append (lt)
(list key)
(rt)))
#;empty))
(+ 'foo)