View On GitHub
functional-workshop
functional programming principles applied in C#
Project maintained by
B1tF8er
Hosted on GitHub Pages — Theme by
mattgraham
Useful links
Delegates
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/delegate
https://www.geeksforgeeks.org/c-sharp-delegates/
https://www.tutorialspoint.com/csharp/csharp_delegates.htm
Funcs
https://docs.microsoft.com/en-us/dotnet/api/system.func-1?view=netframework-4.8
https://www.geeksforgeeks.org/c-sharp-func-delegate/
Actions
https://docs.microsoft.com/en-us/dotnet/api/system.action?view=netframework-4.8
https://www.geeksforgeeks.org/c-sharp-action-delegate/
Curried Functions
https://codeblog.jonskeet.uk/2012/01/30/currying-vs-partial-function-application/
https://www.geeksforgeeks.org/higher-order-functions-currying/
https://weblogs.asp.net/dixin/functional-csharp-higher-order-function-currying-and-first-class-function
Partial Application
https://marcclifton.wordpress.com/2017/06/23/partial-application-and-currying-in-c-clearing-the-fog/
http://mikehadlow.blogspot.com/2015/09/partial-application-in-c.html
Lazy Evaluation / Deferred Execution
https://blogs.msdn.microsoft.com/pedram/2007/06/02/lazy-evaluation-in-c/
https://zohaib.me/lazy-evaluation-in-c/
https://xosfaere.wordpress.com/2010/03/21/lazy-evaluation-in-csharp/
Extension Methods
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
https://www.geeksforgeeks.org/extension-method-in-c-sharp/
Smart Constructors
https://davemateer.com/2019/03/12/Functional-Programming-in-C-Sharp-Expressions-Options-Either
https://markkarpov.com/post/smart-constructors-that-cannot-fail.html
https://news.ycombinator.com/item?id=10295487
Avoid primitive obsession
https://refactoring.guru/smells/primitive-obsession
https://enterprisecraftsmanship.com/2015/03/07/functional-c-primitive-obsession/
Generics
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/
https://www.tutorialsteacher.com/csharp/csharp-generics
https://www.geeksforgeeks.org/c-sharp-generics-introduction/
LINQ
https://www.tutorialspoint.com/linq/linq_overview.htm
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/
https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b