rust iterator methods

what is iterator chaining chain()
iterator map() > myvec.iter().map(|x| x*2).collect();

fold() > iterates over elements and had an accumulator variable myvector.iter().fold(starting_value, |total_so_far, next_number| total_so_far + next_number)

filter()
reduce()
chain()
scan()
repeat()
from_fn()

zip()
*
move in closures

REMEMBER WRITING TESTS IN PROBLEMS
assert!(x,y) o ==?
Solution::myfunc()

iterates and skips the first value of a vector (map could do more complex stuff)

fn example3(words: Vec) -> Vec {
    words
        .iter()
        .enumerate()
        .filter(|&(i, )| i > 0)
        .map(|(
, y)| y.to_string())
        .collect()
}

this could be skip() and then map, but the example shows how to use enumerate and retrieving the index and value of an iterator.

wtf is going on here?

impl Solution {
    pub fn add_to_array_form(mut num: Vec, k: i32) -> Vec {

(0..).scan(k, |cy, n| {
            let sum = *cy + num.pop().unwrap_or(0);
            *cy = (sum - sum%10) / 10;

if num.len() > 0 || sum != 0 || *cy != 0 { Some(sum % 10) } else

}).collect::<Vec<_>>().into_iter().rev().collect()

}