Instead of changing the content of a variable, you can just declare a new one. By avoiding assignment, you can guarantee that your variables won't change. You can guarantee that the current value of x is the one it has been initialised with: init().
Hard to see the upside there. By adding another variable (y in the example), you've added another degree of freedom to your program state, arguably for no good reason. Now there's something else to go wrong that wasn't there before.
Hard to see the upside there. By adding another variable (y in the example), you've added another degree of freedom to your program state, arguably for no good reason. Now there's something else to go wrong that wasn't there before.