(define test-1 (lambda () (dupla-cps 'y '(a b c d) (lambda (x) (equal? x '(y y y y)))))) (define test-2 (lambda () (tree-mult-cps '((1 2) (3 4)) (lambda (x) (= x 24))))) (define test-3 (lambda () (double*-cps 'a '(a b (c a) d) (lambda (x) (equal? x '(a a b (c a a) d)))))) (define test-4 (lambda () (snoc-cps 'z '(x y) (lambda (x) (equal? x '(x y z)))))) (define test-5 (lambda () (map-cps dbl-cps '(a b c) (lambda (x) (equal? x '((a a) (b b) (c c))))))) (define test-6 (lambda () (filter-cps (lambda (x k) (k (not (zero? x)))) '(1 2 0 3) (lambda (x) (equal? x '(1 2 3)))))) (define test-7 (lambda () (compose-cps (lambda (x k) (k (+ 1 x))) (lambda (y k) (k (- y 1))) (lambda (fg) (fg 0 (lambda (x) (= 0 x))))))) (define test-8 (lambda () (depth-cps '(a b (c (d))) (lambda (x) (= 3 x))))) (define test-9 (lambda () (eval-cps (parse '((lambda (x) x) 1)) (make-empty) (lambda (v) (= 1 v))))) (define testit (lambda () (printf "1: ~a " (test-1)) (flush-output) (printf "2: ~a " (test-2)) (flush-output) (printf "3: ~a " (test-3)) (flush-output) (printf "4: ~a " (test-4)) (flush-output) (printf "5: ~a " (test-5)) (flush-output) (printf "6: ~a " (test-6)) (flush-output) (printf "7: ~a " (test-7)) (flush-output) (printf "8: ~a " (test-8)) (flush-output) (printf "9: ~a " (test-9)) (flush-output) (printf "~%") (flush-output))) ;(testit) ;(exit)