FP Complete

The Functor Pattern in C++

The Gang of Four book introduced many a C++ programmer to the world of patterns. Those patterns are mostly based on everyday examples, although there are a few more abstract ones like Strategy. In Haskell (and other functional languages) most patterns are very abstract. They are often based on mathematical constructs; category theory being a […]

Asynchronous API in C++ and the Continuation Monad

The latest C++11 Standard was a brave attempt, after many years of neglect, at catching up with the reality of concurrent programming. The result is a new memory model — a solid foundation for concurrency — and a collection of random concurrency features, many of them either obsolete or inadequate. But there is hope on […]

It’s time for Functional Programming

by Aaron Contorer – CEO In 1999 I went to Bill Gates with an idea to create a software tools group dedicated to shipping complex software faster. Engineers’ time is valuable, and more importantly, software that ships on time with fewer defects is worth a lot. I organized a team that analyzed what was missing […]

The Downfall of Imperative Programming

Imperative programming is in my bloodstream. I’ve been a C++ programmer for most of my life. I wrote a book about C++. I helped Andrei and Walter design an imperative language D. If I dabbled in functional programming, it was mostly to make my imperative programs better. Over the years I also developed a real […]