Functional programming (FP) is an interesting but unconventional programming paradigm. When asking others why we should learn FP, we can expect an answer along the lines of: "It will make you a better programmer" or "It will make you think different about problem solving". That sounds good indeed, but it can be hard to justify learning FP when the benefits arn't that clear.Even though very powerful in certain contexts, FP is not a silver bullet. Rather, it is a different way of solving problems, arguably a more natural way of solving problems than the conventional imperative/Object oriented approach.In this talk, I argue why FP lets us solve problems in a way that is natural to us, and explain why category theory can be thought of as a framework for problem solving. Lastly, I introduce functors, a mathematical construct that has found its place in programming as well. I think this talk could benefit both programmers with no experience with functional programming but interested in learning the basic ideas, as well as beginner or intermediate functional programmers interested in how category theory-concepts are represented by haskell-like programming languages.