Quite a good explantion - the idea of having immutable data is a really strange one to wrap your head around when you have been doing OO for most of your career.
I'm just getting into clisp (I read somewhere that it is inevitable that everyone on HN will eventually try lisp when they have been around long enough) at the moment, and would like to try my hand at some Haskell later as well, and one of the hardest things to do is to think of data in FP terms.