ozheredovПример кода на гипотетическом языке:
primes = [2, 3, 5, 7]
m = amb(*primes)
n = amb(*primes)
if m * n != 6: amb()
return m, nЭто возвратит 

 или 

.
Потом, конечно, придумали более полезные ограниченные вещи, которые можно реально имплементировать, но сам по себе 
amb прост как репа и тем заслуживает немного внимания. При описании поведения 
amb можно не выделять случай вызова без аргументов; каждый вызов 
amb с 

 аргументами разветвляет мир на 

 параллельных, в каждом из которых возвращается один из аргументов, ноль выходит как частный случай.