I think it's worth saying up front that no matter what a programmer does in a function, he can't damage the arguments passed to it, and why this is so liberating.