
Hi Olaf, Are you asking if run $ (const y) <$> normal 0 1 has the same cost as run $ return y for some interpreter `run`? Yes, the cost is the same. In do-notation, we would have run $ do x <- normal 0 1 return $ (const y x) Since `const y` never forces `x`, no time is spent evaluating `run $ normal 0 1`. That is basically what I mean by saying that the language is lazy. -BenRI On 7/16/21 8:27 AM, Olaf Klinke wrote:
Hi,
My program BAli-Phy implements probabilistic programming with models written as Haskell programs.
http://www.bali-phy.org/models.php Dear Benjamin,
last time you announced BAli-Phy I pestered you with questions about semantics. In the meantime there was a discussion [1] on this list regarding desirable properties of probabilistic languages and monads in general. A desirable property of any probabilistic language is that when you define a distribution but map a constant function over it, then this has the same computational cost as returning the constant directly. Can you say anything about that?
Cheers, Olaf
[1] https://mail.haskell.org/pipermail/haskell-cafe/2020-November/132905.html