Source code for gym_gridverse.utils.rl

from typing import Callable


[docs]def make_return_computer(discount: float) -> Callable[[float], float]: """Coroutine which receives rewards and yields cumulative discounted returns""" cumreturn, cumdiscount = 0.0, 1.0 def return_computer(reward: float) -> float: nonlocal cumreturn, cumdiscount cumreturn += cumdiscount * reward cumdiscount *= discount return cumreturn return return_computer