Explore functional programming patterns and their application in object-oriented languages in this 52-minute conference talk. Discover how features like lambda expressions, stream processing libraries, tuples, and pattern matching have been introduced to languages like C# and Java from the functional programming world. Examine case studies comparing traditional object-oriented approaches with functional patterns typically used in Haskell. Gain insights into concepts such as datatype pattern matching, code generation, abstract syntax trees, algebraic data types, generic types, and property-based testing. No prior functional programming knowledge is required, but be prepared for a fresh perspective on programming paradigms.