FUNCTIONAL PROGRAMMING IN C#


Functional Programming is becoming increasingly popular and relevant with each year that goes by. With so much discussion around languages such as F#, Haskell and Erlang, it can seem as though getting started with Functional programming would mean first learning a whole new syntax...but what if it didn't?

Most .NET developers are familiar with the use of Linq, and basic constructs such as IEnumerable, Func delegates, arrow functions and ternary expressions, but did you know that you can use all of this to implement some of the most powerful patterns and techniques from the world of functional programming?

This talk will demonstrate how, using only familiar features available in out-of-the-box C#, to write Functional code that is:


More robust

Easier to read

Easier to maintain


As well as these benefits, Functional code is a great enabler for the use of concurrency with Async functions and Serverless applications with technologies such as Azure Functions.

This talk might be of interest to anyone looking into moving to a new platform, or in improving the scalability of an existing application, or even just interested in seeing what Functional Programming is all about, but all within the comfort of a familiar language.

We might even attempt the impossible, and explain what a Monad is!

Presented at:

GTS-X - Minneapolis, Minnesota, USA - July, 2018

DDD East Anglia - Cambridge, UK - October, 2018

Shropshire Devs - Telford, Shropshire, UK - October, 2018

Smart Devs - Hereford, UK - December, 2018

DotNetNotts - Nottingham, UK - December, 2018

Crafty Coders - Coventry, UK - February, 2019

DotNet OxfordOxford, UK - - March, 2019

DDD North - Hull, UK - March, 2019

Stoke-on-Tech - Stoke-on-Trent, Staffordshire, UK - September, 2019

DDD - Microsoft Campus, Reading, UK - October, 2019

DotNet Sheffield - Sheffield, UK - 5th November 2019

Chester Devs - Chester, UK - 4th February 2020

NDC Oslo - Oslo, Norway (Virtual) - 11th June 2020

Func Prog Sweden - Sweden (Virtual) - 27th May 2021

.Net Zürich - Zürich, Switzerland (Virtual) - 28th February 2022

NDC Porto - Porto, Portugual - 28th April 2022

Net Ponto - Virtual - 14th June 2022

Hainton - Virtual - 24th November, 2022