Functional Geekery Episode 57 – Mark Seemann

In this episode I talk with Mark Seemann. We talk his introduction to functional programming and F#, common principles between functional programming and object oriented programming, Haskell, lessons learned, planting the seeds of functional programming, and much, much more.

Our Guest, Mark Seemann

@ploeh on Twitter
Mark blogs at


This episode is sponsored by project management tools for software teams. Visit to sign up for a free trial and a $50 credit. Clubhouse: dream, develop, deploy.


Curry On is taking place July 18th and 19th in Rome. Visit to find out more and to register.

ElixirConf is taking place August 31st through September 2nd in Orlando, Florida. Visit to register and find out more.

Full Stack Fest will be hold in Barcelona on September 5-9th. You can check out to find out more.

PWLConf 2016 is the first full-day Papers We Love conference, co-located with the preconference events at Strange Loop in Saint Louis, Missouri on September 15th. Keep an eye out for updates on

The Erlang User Conference is coming up in Stockholm, Sweden, the 6th through the 16th of September. Early Bird tickets are now available and get a 10% discount on the conference when you use the code: FunctionalGeekery10 when registering.

Destination Code, a new unconference starting in Utah, is having its inaugural event this December. Visit to find out more.

CodeMesh is taking place the 3rd and 4th of November with tutorials on the 2nd of November. Tickets are available now, but they are going fast. Visit to register and submit your talk.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.


About Mark
How Mark got into software development
Real-World Functional Programming: With Examples in F# and C#
“My C# programming has changed fundamentally from being exposed to F#”
“[F#] felt like coming home”
Eric Evans’ Domain Driven Design
Robert C. Martin’s Clean Code
Command Query Separation from Bertrand Meyer in Object Oriented Software Construction
Having side effects separated from the rest of your code
“Functional programming is imminently testable”
Jessica Kerr on isolation in Functional Programming on Episode 8
DHH’s article on Test-induced design damage
Michael Feathers’ Working Effectively with Legacy Code and seams in code
“Am I writing good F# code?”
Learning Haskell
The struggle of introducing good abstractions
Overview of Functor Type Class and difference between F# and Haskell
Edwin Brady on designing with types on Episode 54
How F# influences Mark’s C#
Structural Equality
Interfaces with only one method as rough equivalent to a function
Porting F# to Haskell to determine if F# is “really good”
“How do I call my database inside my function?'”
Gerard Meszaros’ xUnit Test Patterns
Direct vs Indirect inputs and outputs
Mark’s post on the migration from F# to Haskell
On evangelizing F# and functional programming
Once people start being interested it becomes easy to introduce a small library in F#
Planting the seed of an idea of F# or functional programming
Curiosity of the lack of discriminated unions in C# or Java
Overview of Mark’s Pluralsight courses
Interest in Clojure to see difference in statically vs dynamically typed languages

As always, a giant Thank You goes to David Belcher for the logo design.