[syntax] fluid-let ((var val) ...) exp1 exp2 ...

ChezScheme: simulates dynamically scoped variables. fluid-let doesn't create new bindings; var ... should have defined in the lexical scope where fluid-let appears.

Chicken, MzScheme, Gauche, STk and STklos also has this.

Guile has make-fluid, fluid-ref, fluid-set! and with-fluids* to do similar job.

Some implementations have a mechanism called parameter, which can also be used to realize (sort of) dynamic scope. See make-parameter, parameterize.