<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def env_config(config):
 """Return a new configuration with the values found in the environment. The function recursively iterates over the config, checking if there is a matching env variable. If an env variable is found, the func updates the configuration with that value. The name of the env variable is built combining a prefix (``BIGCHAINDB``) with the path to the value. If the ``config`` in input is: ``{'database': {'host': 'localhost'}}`` this function will try to read the env variable ``BIGCHAINDB_DATABASE_HOST``. """


    def load_from_env(value, path):
        var_name = CONFIG_SEP.join([CONFIG_PREFIX] + list(map(lambda s: s.upper(), path)))

        return os.environ.get(var_name, value)

    return map_leafs(load_from_env, config)