This document summarizes a presentation on functional programming. The presentation covers motivations for functional programming like simplicity and readability. It introduces functional programming concepts like pure functions, recursion, and laziness. Examples shown include filtering a stream lazily to find prime numbers, implementing natural numbers using classes, and partial function application. The presentation emphasizes that functional code is easy to understand, maintain, test and scale.