Comment by mrkeen
2 days ago
> A deterministic program follows a single path of execution, always producing the same result.
Looking at a whole program as D/ND isn't too useful for me since it's too big to analyse and constantly being patched by multiple contributors.
Does this definition of deterministic work for smaller things, like a method?
You can transform a function `f: (Rng, args...) -> A` into a function `f: (args...) -> Set<A>` with very little machinery. Some programming languages allow writing functions that are _generic_ over whether they're random or nondeterministic, such as in this Haskell package: https://hackage.haskell.org/package/nondeterminism-1.5/docs/...