A magazine about programmers, code, and society. Written by and for humans since 2018.
June 1st, 2026
Welcome to the 93rd issue of De Programmatica Ipsum, about Functional Programming. In this edition, Graham explains the benefits of solving problems with a functional mindset; Adrian explores why functional programming was shunned until it was not; in our Vidéothèque section, we watch Joe Armstrong explain how functional programming made Erlang a reality; and in the Library section, we review the most important papers by Philip Wadler, Guy Steele, and Gerry Sussman.
by Graham Lee
Programming styles are supposed to be paradigmatic, in that they structure your thinking about creating software by providing unifying theories and methods that you use to plan, design, construct, and operate your software. In that sense, the way that you think about the software is everything, and the tools that you use are nothing.
by Adrian Kosmaczewski
In a famous paper published in 1998, Philip Wadler complained that no one used functional programming languages. It is safe to say that in 2026 everybody is using some kind of functional programming language, albeit to a certain extent, but the underlying reason for this spread had more to do with fashion and hype rather than market economics or academic support.
If there was a contest for the single most beloved person in the functional programming galaxy, Joe Armstrong would have effortlessly won the first prize. For decades, he constantly showed the world that the principles behind functional programming were the key for resilient, concurrent, and highly available systems. And he showed it in the best possible way, which most probably made Pastor Manul Laphroaig very proud: with an astonishingly serious "PoC" called Erlang.
Imagine a world in which two people take the best ideas from programming languages, and create an interpreter for their own programming language. Then they demonstrate that most of the features in that programming language---indeed, in all programming languages---can be constructed out of just three features of their interpreter: lambda application, conditional execution, and variable assignment. Then, they show that variable assignment is the wrong way to think about variable assignment, and show that their interpreter points to the most efficient way to make language compilers, and made a compiler for their interpreted language to show how good that could be. Then, imagine that they share this knowledge with the world, for free, through a series of memos.
On page 138 of the second edition of his 1971 book, "Categories for the Working Mathematician", American mathematician Saunders Mac Lane inadvertently coined one of the most famous memes ever made around programming. It is there, precisely there, and not anywhere else, where the phrase "a monad in X is just a monoid in the category of endofunctors" was published for the first time. As is often the case, the true origin of the meme got lost in collective memory, and it ended up being falsely attributed to Philip Wadler, although, in hindsight, and all things considered, it was an understandable oversight.