The Choose
effect is used for non-deterministic
computations. With the Choose
effect you can model
computations which either:
Choose
is actually a generalization of List
where instead of “exploring” all the branches we might “cut” some of
them. That behaviour is controlled by the Alternative[F]
instance you use when running Choose
.
For example if we take List
to run a similar example as
before, we get the list of all the accepted pairs: `>
List((2,4), (3,3), (3,4), (4,2), (4,3), (4,4))`