Purely Functional Programming is really great for solving real-world problems!
One of the things it can benefit is concurrency and in this talk by Jakub Kozłowski at Scala UA you'll find out how shared mutable state, queues, and streams can be used for solutions.
Conquering Concurrency with Functional Programming
Some people claim functional programming is useless because in the end there will be side effects - or else your program won't do anything useful. That's not true (at least not in user code), and as it turns out purely functional programming is really good at solving some real-world problems, like concurrency.
Jakub talks about how shared mutable state, queues, and streams can be used in purely functional programs, and why such a solution might be preferred over the classical ways of managing concurrent state.