As noted before, I was scheduled to give a presentation on Aspects of Functional Programming in C# 3.0 yesterday at the Rockville .NET User Group (RockNUG). Unfortunately, before the presentations were to commence, the power went out and the event was scrapped for the evening. Instead, the intention is to reconvene next month at the same time to present again. So, I expect I’ll be there once again the same time next month. In the mean time, I’ve decided to post my slide deck and code samples for all to see. I’ll cover that more below.
Here are some resources that will be helpful in covering functional programming aspects:
Functional Programming
C# Futures
Functional Programming Aspects with C#
- Functional C# Revisited – Into the Great Void
- Functional C# – Unfolding Lists
- Functional C# – Learn from F# and LINQ
- Recursing into Linear, Tail and Binary Recursion
- Define Recursion – See Recursion
Books
Podcasts
- .NET Rocks Episode 310 – Simon Peyton Jones on Functional Programming and Haskell
- .NET Rocks Episode 270 – Erik Meijer on LINQ
- Software Engineering Radio Episode 97 – Anders Hejlsberg
As I said before, I’m making the code available as I put it up on MSDN Code Gallery as the FunctionalCSharp project. This is intended to be a library of functional programming techniques in C# 3.0 and some demonstrations of moving from imperative style programming to a more functional programming style. This is an ongoing project and more will be added in time, and I may end up just putting them up not as samples, but as a library.
Some of the topics covered in these code projects are:
- Closures
- Currying
- Filter High Order Function
- Fold High Order Function
- Iterators
- Lazy Evaluation
- LINQ
- Lists (Immutable and Recursive)
- List Comprehensions
- Map High Order Function
- Memoization
- Monads
- Operators (Forward, Reverse, etc)
- Recursion
- Unfolding and Generators
My slide deck can be found here and my code snippets once again can be found here.
var dzone_title = ‘Aspects of Functional Programming in C# Presentation and Code’;
var dzone_blurb = ‘Aspects of Functional Programming in C# Presentation and Code’;