//@ immutable per default, and you need to tell Rust if you want
//@ to change a variable later.
- // Now we want to *iterate* over the list. Rust has some nice syntax for
- // iterators:
+ // Now we want to *iterate* over the list. Rust has some nice syntax for iterators:
for el in vec {
// So `el` is al element of the list. We need to update `min` accordingly, but how do we get the current
// number in there? This is what pattern matching can do:
vec![18,5,7,1,9,27] /*@*/
}
-// Finally, let's call our functions and run the code!
-// But, wait, we would like to actually see something, so we need to print the result.
-// Of course Rust can print numbers, but after calling `vec_min`, we have a `NumberOrNothing`.
-// So let's write a small helper function that prints such values.
+// Of course, we would also like to actually see the result of the computation, so we need to print the result.
+//@ Of course Rust can print numbers, but after calling `vec_min`, we have a `NumberOrNothing`.
+//@ So let's write a small helper function that prints such values.
//@ `println!` is again a macro, where the first argument is a *format string*. For
//@ now, you just need to know that `{}` is the placeholder for a value, and that Rust
print_number_or_nothing(min);
}
-// You can now use `cargo build` to compile your code. If all goes well, try `cargo run` on the
-// console to run it.
+//@ You can now use `cargo build` to compile your *crate*. That's Rust's name for a *compilation unit*, which in
+//@ the case of Rust means an application or a library. <br/>
+// Finally, try `cargo run` on the console to run it.
//@ Yay, it said "1"! That's actually the right answer. Okay, we could have
//@ computed that ourselves, but that's besides the point. More importantly: