As a real-life example, here is the VSOP87 algorithm's variable function implemented with a fold() method. The VSOP87 algorithm is used to find planets and moons in the sky with really good accuracy, useful for simulators and telescope star finders, for example:
fn calculate_var(t: f64, var: &[(f64, f64, f64)]) -> f64 { var.iter() .fold(0_f64, |term, &(a, b, c)| term + a * (b + c * t).cos())}
This is equivalent to this other code:
fn calculate_var(t: f64, var: &[(f64, f64, f64)]) -> f64 { let mut term = 0_f64; for &(a, b, c) in var { term += a * (b + c * t).cos(); } term}
And in C/C++, this would probably require a structure to hold the tuple. Five lines reduced to one with the same native code. As we talked about, this ...