2025-10-16 –, Aula 4.101
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 comparisonsfunctools.reduce()
for data aggregationoperator.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.
I’m a curious and analytical mind by nature. I’m a physicist turned research software engineer who enjoys both coding and wandering in the mountains—fortunately, I live in Switzerland. Outside work, I enjoy puzzles, retro tech, and meaningful conversations. I value exploration, both physical and intellectual.