An Introduction to Functional Programming
Software development has cycles. In the 1980's, functional programming languages were "hot" but somehow they never became mainstream. Instead, object-oriented languages took over the mainstream and that has shaped how most of us program today. However, functional programming languages have started to get more attention recently, partly because Moore's Law has begun to stall and instead of chips continuing to get more powerful, we are moving to multiple cores - and we need to take advantage of concurrent processing in order to leverage those cores.
Functional programming languages focus on immutability of shared data and higher order functions. The former makes concurrent programming much easier and the latter allows for small "pure" functions to be easily composed into sophisticated algorithms. In addition, the nature of functional programming allows for much easier testability - in the absence of side effects.
In this session, you'll learn about some functional programming languages that are making waves these days as well as some techniques you can apply to solving your own problems in a way that's easier to test, easier to reuse and easier to leverage concurrency.