env_cache() is a wrapper around env_get() and env_poke()
designed to retrieve a cached value from env.
If the nm binding exists, it returns its value.
Otherwise, it stores the default value in env and returns that.
env_cache(env, nm, default)An environment.
Names of bindings. nm must be a single string.
The default value to store in env if nm does not
exist yet.
Either the value of nm or default if it did not exist
yet.
e <- env(a = "foo")
# Returns existing binding
env_cache(e, "a", "default")
#> [1] "foo"
# Creates a `b` binding and returns its default value
env_cache(e, "b", "default")
#> [1] "default"
# Now `b` is defined
e$b
#> [1] "default"