Are you writing nested loops when solving coding challenges? Discover how Python's functional programming toolbox can transform your problem-solving approach. We'll explore functional programming principles through the lens of Advent of Code puzzles, learning to think in streams of data rather than step-by-step instructions. We’ll explore some essential bits from `itertools`, `functools`, and `operator` modules, aiming to write more expressive, debuggable code. Starting with pure functions and lazy evaluation, we'll build up to solving real AoC problems using techniques like: `itertools.pairwise()` for sequence comparisons, `functools.reduce()` for data aggregation, `operator.itemgetter()` for elegant sorting, Generator expressions for memory-efficient processing. Through some puzzles from various years, we’ll see how functional approaches often lead to more concise solutions that closely mirror the problem description. We'll compare imperative vs functional solutions, highlighting pros and cons of both approaches. Whether you're preparing for coding interviews, tackling AoC, or just want to expand your Python toolkit, you'll leave with a couple more ideas for writing cleaner, more Pythonic code - no external dependencies required.
about this event: https://talks.python-summit.ch/sps25/talk/PA7988/