Early summer last year I organized a workshop on TDD with functional programming with 10 attendees. Quite a few people have asked me about our results, but I had been waiting for a time with more leisure to write about it. Which, of course, never shows up. Since the follow-up workshop will take place later this month, it’s high time to at least sum up the main learnings of those three intensive days.

So here’s a few points I collected for an email I sent to one of inquirers. Take them as rough and rather subjective notes. The other participants, who are invited to comment, might not agree with parts or even any of it…

TL;DR

TDD with functional languages is certainly possible. A smooth experience, however, will require some tweaking and rethinking.

More Details

Areas where tweaking and rethinking of OO-focused TDD will be necessary:

Examples in Code

Most of the code we produced can be found on Github.

Personal Focus

I’ve personally focused on integrating property-based testing into my style of TDD. Since the JVM is still the main platform I fight with for money, I started to develop and use jqwik.