Referential transparency

Referential transparency is a big deal in FP - it’s basically the core of what functional programming is.

Scala, being the hybrid that it is, has features that are commonly used in imperative languages but break referential transparency by their very existence. We’ll explore the most common (and dangerous) ones here.

And for readers that are in the “Scala as an imperative language” part of the community: even then, referential transparency is a useful property, a good default to strive for but break when needed.