I'd like to generate a vector of tuples from a vector, where each tuple is the element in the vector along with the index of that element, like this: [("zero", 0), ("one", 1) ...]
This is how I would do it in Scala:
val units_ = Seq("zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen")
val units = (units_ zip units_.indices)
The following loop prints what I want
let units = vec![ "zero", "one", "two", "three", "four", "five", "six", "seven",
"eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen",
"sixteen", "seventeen", "eighteen", "nineteen", ];
for (idx, item) in units.iter().enumerate() {
println!("{} {}", idx, item);
}
But I'd like to get a vector from mapping, like so:
let result = units.iter().enumerate().map(|(item, idx)| (item, idx));
But that isn't what I was looking for, when I print
println!("{:?}", result)
I get
Map { iter: Enumerate { iter: Iter(["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"]), count: 0 } }