#54 Mark Seemann, Functional Programming and F#


Mark Seemann, author, creator of AutoFixture and Plural Sight coach tells me about functional programming and F# in particular.


His background, started with VB and C++, now programs in C# only for money; what functional programming is; isolating side effects to boundaries of the program; is functional programming only suitable for certain types of application; isolation, great for testing; all of .net is available; composing functions; interfaces, strategy pattern, dependency injection; differences in architecture when developing in F#, quoting Alan Kay; deploying and devops; roslyn and f#; the book that started it for Mark by Tomas Petricek, wrap up.

Book Recommendations

I sometimes ask people to recommend a few books that are relevant to the topic and a few that have been influential to them, Mark was kind enough to write the following about his choices.


  • Clean Code, by - Robert C. Martin. This isn’t the book that changed my approach to programming the most, but it’s the book that I recommend that all programmers should read. While examples are in Java, and thus seem to apply to OOD, I think many of the points apply equally well to FP.

  • Design Patterns, by - Eric Gamma et al. This book changed the way I programmed. The reason I don’t list it as number one today is that it’s not interesting to Functional Programmers, but anyone doing OOD should read it.

  • Refactoring, by Martin Fowler et al. Another OOD-specific book, this one is a gem because of the list of code smells it contains.


  • Blindsight, by Peter Watts. This book changed the way I think about consciousness, cognition, and a host of other things. To say anything more would be a spoiler.

  • Atlas Shrugged, by Ayn Rand. This one is embarrassing, but I grew up in the 1970s and 80s Denmark, which was as leftish it could be and still be a NATO member. Being good at something was more of a burden than a blessing. When I read Atlas Shrugged in my early thirties, it was a revelation to discover that there even exists a philosophy that views being good at something as a moral superior position. There’s a lot of Randism that I don’t buy into, but this book taught me that it was OK to be proud of being good at something, and for that, I’m grateful.

  • The Lord of the Rings, by J.R.R. Tolkien. There’s really nothing profound about this, and it isn’t a book I think much about on a normal day. It still holds the singular record of being the only book I’ve read and enjoyed in more than one life stage (twice when I was an adolescent, and a third time around 30). All other books I enjoyed when I was young, I’ve later found basic and disappointing.

Mark also keeps a list of must read books for .Net developers.

Download mp3 of podcast

comments powered by Disqus