fn iter_vec(v: ~[T], f: fn(T)) { for v.each |x| { f(x); } } fn main() { let v = ~[1, 2, 3, 4, 5, 6, 7]; let mut odds = 0; iter_vec(v, |i| { log(error, i); if i % 2 == 1 { odds += 1; } log(error, odds); }); log(error, odds); assert (odds == 4); }