Advantages of immutable variables besides concurrency
eru: Yes.  It makes composing larger programs out of smaller programs easier.  Especially if functions have to be real mathematical functions, and can't have any side-effects."Composability means that you can put two bits of code together and important correctness properties will be preserved automatically. This does not mean, of course, that the composition is automatically correct in a wider sense, but it does mean that you don’t introduce new bugs merely by sticking two things together." (http://paulspontifications.blogspot.com/2007/09/composabilit...)