[][src]Macro mini_kanren::matche

macro_rules! matche {
    ( $val:expr, $( $pat:tt => $($goal:expr),* ; )+ ) => { ... };
    (@match: $val:expr, ($h:tt) => $($goal:expr),*) => { ... };
    (@match: $val:expr, ($h:tt ; $t:tt) => $($goal:expr),*) => { ... };
    (@match: $val:expr, ($h:tt, $($rest:tt)*) => $($goal:expr),*) => { ... };
    (@match: $val:expr, _ => $($goal:expr),*) => { ... };
    (@match: $val:expr, $v:ident => $($goal:expr),*) => { ... };
    (@match: $val:expr, $c:expr => $($goal:expr),*) => { ... };
}

Matche! behaves like conde! but allows pattern matching. This simplifies destructuring and creation of fresh variables.

Every successful line contributes one or more values.