/** * disj one or more goals without nesting. */ function disjPlus($g) { $gs = func_get_args(); if (func_num_args() === 1) { return zzz($g); } else { return disj(zzz($g), call_user_func_array('MicroKanren\\Core\\disjPlus', array_slice($gs, 1))); } }
function manyNonAns() { return callFresh(function ($x) { return disj(relo(cons(5, 6)), eq($x, 3)); }); }