If you have an imperative (and probably object-oriented) programming background, Becoming Functional will help you through the sometimes alien world of functional programming. Many functional programming books begin by focusing on the more difficult concepts such as recursion and immutability. This book lets you dive right in to functional programming by teaching the most useful implementation concepts first. Once you finish a chapter, you'll be able to take the concept you just learned and use it in their current day-to-day job. Each chapter introduces a problem and investigates ways to solve it by going from imperative pseudo-code to functional pseudo-code.