While the semantics of standard programming constructs is well understood in the context of exact inference for probabilistic programs, its extension to unbounded loops has been absent, even though the need for specifying a distribution that is reached after an unknown number of computations arises naturally in different scenarios. We tackle the problem of efficient iteration in the context of discrete probabilistic programs by expanding an existing probabilistic programming language with two semantically different ways in which a probabilistic expression could be iterated, while keeping the ability to perform exact inference on the whole program.