Going all in with functional C#

By Ed Charbeneau

Elevator Pitch

In this workshop we’ll learn about functional C# by building a poker scoring game using C# 6 features. We’ll learn what new features were added to support functional programming. The pros/cons of functional vs. imperative programming will be explored to understand the strengths of each style.

Description

In this workshop attendees will learn about functional C# by building a poker scoring game using C# 6 features. We’ll learn what new features were added in C# 6 to support functional programming. The pros/cons of functional vs. imperative programming will be explored to understand the strengths of each style.

In this workshop we’ll learn:

  • Immutable Types
  • Basic LINQ concepts
  • Advanced LINQ concepts (Yeild)
  • Func Delegates
  • Expression Bodied Members
  • Extension methods and pipe-lining
  • Thread Safe Collections

Notes

This is a rapid fire workshop using a poker scoring kata. We’ll learn at an accelerated pace with 20 minute challenge based intervals with solutions given at the end of each interval. We’ll use these challenges to compare methodologies and reveal that we can tackle one problem in many ways using code. In the end we’ll reveal that using a mix of functional and imperative programming can tackle most challenges in a single line of code.