Macro enso_prelude::f[][src]

macro_rules! f {
    ([$($name:ident),*] ($($args:tt)*) $($expr:tt)*) => { ... };
    ([$($name:ident),*] $($expr:tt)*) => { ... };
    (($($args:tt)*) $name:ident . $($toks:tt)*) => { ... };
    (($($args:tt)*) { $name:ident . $($toks:tt)* }) => { ... };
    ($name:ident . $($toks:tt)*) => { ... };
}
Expand description

Clones all arguments from the first argument list by using CloneRef and defines lambda with arguments from the second argument list (if present). For example, the following usage

f! { (a,b)(c) a + b + c }

is equivalent to:

{
    let a = a.clone_ref();
    let b = b.clone_ref();
    move |c| { a + b + c }
}