Appendix B. Lists and referential transparency
What is the point of Erlang’s list data type, you may ask (in particular if you’re used to languages like Java, Python, and so on, where you work a lot with arrays, buffers, and whatnot). For every element, you also need a pointer to the next one, using valuable memory, and you can’t even add elements on the right side of the list! Pah!
This is all true; but in Erlang, you’re never allowed to modify the value of something if it could cause someone else’s data to be changed behind their back. This is the main idea behind the fancy words referential transparency.
B.1. A definition of referential transparency
Referential transparency is a simple concept. It boils down to this: If you get hold of ...