Pure functional programming is one of the best practices in functional programming and you should stick to it. Writing pure functions will make your programming life easier and you will be able to write code that's easy to maintain and extend. Also, if you want to parallelize your code then it will be easier to do so if you write pure functions.
If you're an FP purist, one drawback of using functional programming in Scala is that Scala supports both OOP and FP (see Figure 1), and therefore it's possible to mix the two coding styles in the same code base. In this chapter, we have seen several examples showing that writing pure functions is easy. However, combining them into a complete application is difficult. You might agree that advanced topics such as monads make FP intimidating.
I talked to many people and they think...