Function ukanren::run[][src]

pub fn run<F, I, const N: usize>(f: F) -> RunStream<I> where
    F: Fresh<N, Iter = I> + Clone,
    I: Iterator<Item = State>, 
Expand description

Top-level entry point for running a goal with fresh variables.

Example

use ukanren::{eq, run, state, Goal, ToValue};

let mut iter = run(|x| eq(&x, &5).or(eq(&x, &6)));

assert_eq!(iter.next(), Some(state![5]));
assert_eq!(iter.next(), Some(state![6]));
assert_eq!(iter.next(), None);