What Is Functional Programming?Functions in MathematicsVariables That Aren’tFunctional Programming in ScalaAnonymous Functions, Lambdas, and ClosuresPurity Inside Versus OutsideRecursionTail Calls and Tail-Call OptimizationTrampoline for Tail CallsPartially Applied Functions Versus Partial FunctionsCurrying and Other Transformations on FunctionsFunctional Data StructuresSequencesMapsSetsTraversing, Mapping, Filtering, Folding, and ReducingTraversalMappingFlat MappingFilteringFolding and ReducingLeft Versus Right TraversalsTail Recursion Versus Traversals of Infinite CollectionsCombinators: Software’s Best Component AbstractionsWhat About Making Copies?Recap and What’s Next