Bartosz Milewski

Bartosz has a Ph D in theoretical physics but his interests led him to study programming, computer science, and mathematics. His blog posts cover wide areas of C++, Haskell, and category theory. His lectures on concurrent programming, Haskell, and category theory are available on YouTube.

In functional programming, functions are first-class citizens. This is due to the adjunction between the product and the exponential. It’s little known that, when you relax this adjunction, you can replace some functions with data in the process called defunctionalization. I’ll show you how to defunctionalize tree traversal in Haskell.