Lists and Non-determinism
The term non-deterministic computation can have different meanings
- This kind of non-determinism when using multiple threads of execution where the output could be determined by the order of execution at runtime.
- The non determinism in the context of zero or more possible outputs.
Although Lists are used for processing data sequences, they can also be used for turning non deterministic computations into pure functions by returning lists of all possible outputs. If a function can return different results, then it can return them all at once. Therefore a non deterministic function can be thought of as a function that returns a list of results.