(load-relative "loadtest.ss") (Section 'function) (require mzlib/list) (require mzlib/etc) (test 0 (compose add1 sub1) 0) (test 2 (compose add1 (lambda () 1))) (test 5 (compose (lambda (a b) a) (lambda (x) (values (add1 x) x))) 4) (test -1 (compose (lambda (a b) (+ a b)) (lambda (x y) (values (- y) x))) 2 3) (test 'hi (compose (case-lambda [(x) 'bye][(y z) 'hi]) (lambda () (values 1 2)))) (test 'ok (compose (lambda () 'ok) (lambda () (values)))) (test 'ok (compose (lambda () 'ok) (lambda (w) (values))) 5) (test-values '(1 2 3) (lambda () ((compose (lambda (x) (values x (add1 x) (+ x 2))) (lambda (y) y)) 1))) (err/rt-test (compose 5)) (err/rt-test (compose add1 sub1 5)) (err/rt-test (compose add1 5 sub1)) (err/rt-test (compose 5 add1 sub1)) (err/rt-test ((compose add1 (lambda () (values 1 2)))) exn:application:arity?) (err/rt-test ((compose add1 sub1)) exn:application:arity?) (err/rt-test ((compose (lambda () 1) add1) 8) exn:application:arity?) (arity-test compose 1 -1) (test '("a" "b" "c" "c" "d" "e" "f") sort '("d" "f" "e" "c" "a" "c" "b") string