If you have an imperative (and probably object-oriented) programming background, this hands-on book will guide you through the alien world of functional programming. Author Joshua Backfield begins slowly by showing you how to apply the most useful implementation concepts before taking you further into functional-style concepts and practices.In each chapter, youll learn a functional concept and then use it to refactor the fictional XXY companys imperative-style legacy code, writing and testing the functional code yourself. As you progress through the book, youll migrate from Java 7 to Groovy and finally to Scala as the need for better functional language support gradually increases.Learn why todays finely tuned applications work better with functional codeTransform imperative-style patterns into functional code, following basic stepsGet up to speed with Groovy and Scala through examplesUnderstand how first-class functions are passed and returned from other functionsConvert existing methods into pure functions, and loops into recursive methodsChange mutable variables into immutable variablesGet hands-on experience with statements and nonstrict evaluationsUse functional programming alongside object-oriented design