Lazy Combinations in Elixir
When building Guesswork, a logic programming library for Elixir, I ran into an
interesting problem: supporting both logical And as well as infinite streams
of possibilities.
To give an example, the statement ‘Let A be some positive number, and let B be
some factorial of A’, has both an infinite stream of values (A could be 1, 2,
3, etc.) and a logical conjunction; it cannot be represented without both.