Rustでカタラン三角形

思いつきでちょろっとrust。

Catalan’s Triangle | Programming Praxis

fn main() {
    let mut v = vec![1];

    for _ in 0..7 {
        v = v.iter().scan(0, |state, &x| {
            *state = *state + x;
            Some(*state)
        }).collect::<Vec<_>>();
        println!("{:?}", v);
        v.push(0);
    }
}

なんかいちいちcollectしてるの違う気がするし、scan書くの難しいしで、書き捨てのコードすら手間取るという…