compile/define-environ
Syntax: (define-environ NAME [DEFAULT])
Behaviour: Binds NAME to a ref into os.environ for the variable
of the same name: reading NAME reads the variable and set! on it
stores the variable. Without a default the ref is an ItemRef, and a
read of an unset variable raises KeyError. With a default the read
returns it when the variable is unset, and clearing the ref deletes the
variable.
The same ref is available anonymously as (ref (environ KEY [DEFAULT]))
and through (bind! NAME (environ KEY [DEFAULT])), which let the
binding’s name differ from the variable’s. An empty key raises
ValueError.
Examples:
import os
(define-environ HOME)
(instance? HOME str) ;; True
(define-environ APP_MODE "dev")
APP_MODE ;; "dev" when unset
(set! APP_MODE "prod")
os.environ["APP_MODE"] ;; "prod"