Scala is foremost a functional programming language. Most of us have become accustomed to writing our applications with immutable data structures and pure functions, but what about those few little impure functions? This talk aims to give some solutions for dealing with those nasty impurities that may come to bite you, when not handled properly.
When talking about functional programming in Scala, we often come across the term “referential transparency”, but it’s explanation can sometimes be confusing or even condescending. This talk tries to develop an intuition for the concepts of referential transparency and side-effects from the ground up, including all of the benefits and drawbacks to sticking to such a style of programming. Finally, we will have a look at some “real world”-scenarios in “real world”-code, where referential transparency has had an immense impact on the effectiveness of development.