This is a code style question.
What do you prefer, redefining a variable:
let a = 1.0; let a = -a;
Or defining a variable as mutable:
let mut a = 1.0; a = -a;
I speak when there are not control flow blocks. No
while, etc.. Obviously, when they exist, we have no choice but to use the second approach.
Edit: To clarify, I know it's possible even with control flow. But let's talk about the simple case.
I can see advantages to both styles. When this allows me to use compound operators, I strictly prefer the second. That is, I write:
let mut length = 1; length += 1;
let length = 1; let length = length + 1;
Because of the noise.
But when there are not compound operators, I have doubts what to choose. I can prefer the second because its conciseness, or the first because it reduces the risk for an unwanted mutation. After all, functional languages have only the first for this reason.
Edit: Also, I can see an advantage to the second version because it's easier to understand what variable we refer to in the declaration, esp. for programmers without much background in functional languages.