Code samples, exercises, and a functional library for learning functional programming concepts in C#.
Functional-csharp-code is a companion repository for the book *Functional Programming in C#*, containing code samples, exercises, and a functional library. It helps C# developers learn functional programming concepts through practical examples and hands-on practice. The project includes a pedagogical functional library (LaYumba.Functional) that demonstrates how to implement functional patterns in C#.
C# developers who want to learn functional programming concepts and apply them in their .NET projects. It's particularly useful for developers transitioning from object-oriented to functional programming paradigms.
Provides a structured, practical learning path with runnable examples and exercises that directly correspond to book content. The accompanying functional library serves as both a learning tool and a reference implementation for functional patterns in C#.
Code samples for Functional Programming in C#
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Code is organized by chapter with runnable examples, directly corresponding to the book 'Functional Programming in C#', as outlined in the project structure with sections like Examples and Exercises.
Includes placeholder projects for exercises with provided solutions, allowing developers to test their understanding practically, as described in the 'Doing the exercises' section.
The LaYumba.Functional library is developed incrementally throughout the book, serving as a clear reference for implementing functional patterns like Option and Either in C#.
Provides specific guidance for using C# Interactive to experiment with functional code, including commands for importing the library and running examples, as detailed in the 'Setting up the REPL' section.
Requires .NET Core 2.0.3 SDK, which is no longer supported, making setup and compatibility issues likely on modern systems without manual updates.
The library is explicitly labeled as pedagogical in the README, admitting it's not intended for production use and recommending alternatives like LanguageExt for fully-fledged needs.
Setting up the REPL involves manual path adjustments to reference the DLL, which can be error-prone and cumbersome for beginners, as noted in the setup instructions.