(use-modules (srfi srfi-39)) (define (check a b a-val b-val) (if (not (eqv? (a) a-val)) (error "failure -- a" (a) a-val)) (if (not (eqv? (b) b-val)) (error "failure -- b" (b) b-val))) (define a (make-parameter 3)) (define b (make-parameter 4)) (check a b 3 4) (parameterize ((a 2) (b 1)) (check a b 2 1) (parameterize ((b 8)) (check a b 2 8))) (check a b 3 4) (define c (make-parameter 2 (lambda (x) (if (< x 10) x 10)))) (define d (make-parameter 15 (lambda (x) (if (< x 10) x 10)))) (check c d 2 10) (parameterize ((a 0) (b 1) (c 98) (d 9)) (check a b 0 1) (check c d 10 9) (parameterize ((c (a)) (d (b))) (check a b 0 1) (check c d 0 1)))