fn main() {
let xs: Vec<i64> = vec![3, 1, 4, 1, 5];
let rev_xs: Vec<i64> = xs.iter().map(|&x| x).rev().collect();
println!("rev_xs = {:?}", rev_xs);
let acc: Vec<_> = xs.iter()
.scan(0, |state, &x| { *state += x; Some(*state) })
.collect();
println!("acc = {:?}", acc);
let ys = vec![2, 7, 1, 8, 2];
let xys: Vec<_> = xs.iter().map(|&x| x).zip(ys.iter().map(|&x| x)).collect();
println!("xys = {:?}", xys);
let sqs
: Vec
<_
> = xs.
iter().
map(|&x
| x.
pow(2)).
collect(); println!("sqs = {:?}", sqs);
let odds: Vec<_> = xs.iter().filter(|&&x| x % 2 == 1).map(|&x| x).collect();
println!("odds = {:?}", odds);
let (fib5, _) = (0..4).fold(
(1, 0),
|(p, pp), _| (p + pp, p)
);
println!("fib5 = {}", fib5);
let x_max = *xs.iter().max().unwrap();
println!("x_max = {}", x_max);
let zs = vec![];
let z_min = *zs.iter().max().unwrap_or(&0);
println!("z_min = {}", z_min);
let x_argmin = *xs.iter().min_by_key(|&&x| x % 2).unwrap();
println!("x_argmin = {}", x_argmin);
let s: i64 = xs.iter().sum();
println!("s = {}", s);
let is_all_odd = xs.iter().all(|&x| x % 2 == 1);
println!("is_all_odd = {}", is_all_odd);
let does_exist_even = xs.iter().any(|&x| x % 2 == 0);
println!("does_exist_even = {}", does_exist_even);
let indexed_xs: Vec<_> = xs.iter().map(|&x| x).enumerate().collect();
println!("indexed_xs = {:?}", indexed_xs);
let sorted_xs: Vec<_> = {
let mut tmp_xs = xs.clone();
tmp_xs.sort();
tmp_xs
};
println!("sorted_xs = {:?}", sorted_xs);
let ps: Vec<_> = (0..10).collect();
println!("ps = {:?}", ps);
let qs: Vec<_> = (1..10).collect();
println!("qs = {:?}", qs);
let heads = xs[..3].to_vec();
println!("heads = {:?}", heads);
let tails = xs[3..].to_vec();
println!("tails = {:?}", tails);
}
Zm4gbWFpbigpIHsKICAgIGxldCB4czogVmVjPGk2ND4gPSB2ZWMhWzMsIDEsIDQsIDEsIDVdOwogICAgbGV0IHJldl94czogVmVjPGk2ND4gPSB4cy5pdGVyKCkubWFwKHwmeHwgeCkucmV2KCkuY29sbGVjdCgpOwogICAgcHJpbnRsbiEoInJldl94cyA9IHs6P30iLCByZXZfeHMpOwogICAgbGV0IGFjYzogVmVjPF8+ID0geHMuaXRlcigpCiAgICAgICAgLnNjYW4oMCwgfHN0YXRlLCAmeHwgeyAqc3RhdGUgKz0geDsgU29tZSgqc3RhdGUpIH0pCiAgICAgICAgLmNvbGxlY3QoKTsKICAgIHByaW50bG4hKCJhY2MgPSB7Oj99IiwgYWNjKTsKICAgIGxldCB5cyA9IHZlYyFbMiwgNywgMSwgOCwgMl07CiAgICBsZXQgeHlzOiBWZWM8Xz4gPSB4cy5pdGVyKCkubWFwKHwmeHwgeCkuemlwKHlzLml0ZXIoKS5tYXAofCZ4fCB4KSkuY29sbGVjdCgpOwogICAgcHJpbnRsbiEoInh5cyA9IHs6P30iLCB4eXMpOwogICAgbGV0IHNxczogVmVjPF8+ID0geHMuaXRlcigpLm1hcCh8Jnh8IHgucG93KDIpKS5jb2xsZWN0KCk7CiAgICBwcmludGxuISgic3FzID0gezo/fSIsIHNxcyk7CiAgICBsZXQgb2RkczogVmVjPF8+ID0geHMuaXRlcigpLmZpbHRlcih8JiZ4fCB4ICUgMiA9PSAxKS5tYXAofCZ4fCB4KS5jb2xsZWN0KCk7CiAgICBwcmludGxuISgib2RkcyA9IHs6P30iLCBvZGRzKTsKICAgIGxldCAoZmliNSwgXykgPSAoMC4uNCkuZm9sZCgKICAgICAgICAoMSwgMCksCiAgICAgICAgfChwLCBwcCksIF98IChwICsgcHAsIHApCiAgICApOwogICAgcHJpbnRsbiEoImZpYjUgPSB7fSIsIGZpYjUpOwogICAgbGV0IHhfbWF4ID0gKnhzLml0ZXIoKS5tYXgoKS51bndyYXAoKTsKICAgIHByaW50bG4hKCJ4X21heCA9IHt9IiwgeF9tYXgpOwogICAgbGV0IHpzID0gdmVjIVtdOwogICAgbGV0IHpfbWluID0gKnpzLml0ZXIoKS5tYXgoKS51bndyYXBfb3IoJjApOwogICAgcHJpbnRsbiEoInpfbWluID0ge30iLCB6X21pbik7CiAgICBsZXQgeF9hcmdtaW4gPSAqeHMuaXRlcigpLm1pbl9ieV9rZXkofCYmeHwgeCAlIDIpLnVud3JhcCgpOwogICAgcHJpbnRsbiEoInhfYXJnbWluID0ge30iLCB4X2FyZ21pbik7CiAgICBsZXQgczogaTY0ID0geHMuaXRlcigpLnN1bSgpOwogICAgcHJpbnRsbiEoInMgPSB7fSIsIHMpOwogICAgbGV0IGlzX2FsbF9vZGQgPSB4cy5pdGVyKCkuYWxsKHwmeHwgeCAlIDIgPT0gMSk7CiAgICBwcmludGxuISgiaXNfYWxsX29kZCA9IHt9IiwgaXNfYWxsX29kZCk7CiAgICBsZXQgZG9lc19leGlzdF9ldmVuID0geHMuaXRlcigpLmFueSh8Jnh8IHggJSAyID09IDApOwogICAgcHJpbnRsbiEoImRvZXNfZXhpc3RfZXZlbiA9IHt9IiwgZG9lc19leGlzdF9ldmVuKTsKICAgIGxldCBpbmRleGVkX3hzOiBWZWM8Xz4gPSB4cy5pdGVyKCkubWFwKHwmeHwgeCkuZW51bWVyYXRlKCkuY29sbGVjdCgpOwogICAgcHJpbnRsbiEoImluZGV4ZWRfeHMgPSB7Oj99IiwgaW5kZXhlZF94cyk7CiAgICBsZXQgc29ydGVkX3hzOiBWZWM8Xz4gPSB7CiAgICAgICAgbGV0IG11dCB0bXBfeHMgPSB4cy5jbG9uZSgpOwogICAgICAgIHRtcF94cy5zb3J0KCk7CiAgICAgICAgdG1wX3hzCiAgICB9OwogICAgcHJpbnRsbiEoInNvcnRlZF94cyA9IHs6P30iLCBzb3J0ZWRfeHMpOwogICAgbGV0IHBzOiBWZWM8Xz4gPSAoMC4uMTApLmNvbGxlY3QoKTsKICAgIHByaW50bG4hKCJwcyA9IHs6P30iLCBwcyk7CiAgICBsZXQgcXM6IFZlYzxfPiA9ICgxLi4xMCkuY29sbGVjdCgpOwogICAgcHJpbnRsbiEoInFzID0gezo/fSIsIHFzKTsKICAgIGxldCBoZWFkcyA9IHhzWy4uM10udG9fdmVjKCk7CiAgICBwcmludGxuISgiaGVhZHMgPSB7Oj99IiwgaGVhZHMpOwogICAgbGV0IHRhaWxzID0geHNbMy4uXS50b192ZWMoKTsKICAgIHByaW50bG4hKCJ0YWlscyA9IHs6P30iLCB0YWlscyk7Cn0K
rev_xs = [5, 1, 4, 1, 3]
acc = [3, 4, 8, 9, 14]
xys = [(3, 2), (1, 7), (4, 1), (1, 8), (5, 2)]
sqs = [9, 1, 16, 1, 25]
odds = [3, 1, 1, 5]
fib5 = 5
x_max = 5
z_min = 0
x_argmin = 4
s = 14
is_all_odd = false
does_exist_even = true
indexed_xs = [(0, 3), (1, 1), (2, 4), (3, 1), (4, 5)]
sorted_xs = [1, 1, 3, 4, 5]
ps = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
qs = [1, 2, 3, 4, 5, 6, 7, 8, 9]
heads = [3, 1, 4]
tails = [1, 5]