;; parameters can be used as enhanced global variables, thread local ;; storage, dynamically scoped variables, and traced variables. (use gauche.parameter) ;; dynamic scope (define p1 (make-parameter 1)) (define g1 1) (define (inner-print) (format #t "inner-print: (p1 ~s) (g1 ~s)\n" (p1) g1)) (print (p1)) ;;(parametrize ((p1 2)) ;; (let ((g1 2)) ;; (print-inner))) (parametrize ((p1 2)) (inner-print))