Software Architecture in Practice

8. Functional Programming

Functional programming stresses the importance on mutability and therefore is natural t for parallel and concurrent programming 

Because state is often not kept in functions 

- it has one less complexity to debug against, as you can always regenerate that state 

- race conditions are kept to a minimal 

- are great for pipeline architectures