This guide looks at different ways to solve a sample problem using functional programming. It shows how programmers use techniques, patterns, algorithms, and data structures as their main tools.