Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 15 C# Functional programming Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
ObservableComputations
Cross-platform .NET library for computations whose arguments and results are objects that implement INotifyPropertyChanged and INotifyCollectionChanged (ObservableCollection) interfaces.
-
Curryfy
Provides strongly typed extensions methods for C# delegates to take advantages of functional programming techniques, like currying and partial application.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
YoowzxCalc
.NET library for processing of mathematical expressions developed with emphasis on performance and flexibility of use.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
You probably noticed that .SetName() returns a Either. You may have come across Unit in libraries like MediatR or Language-Ext. It's a simple construct representing a type with only one possible value. We use it as a placeholder for operations that do not return a value but may return another state. In our example, .SetName() is a Command that does not return a value but may fail. Therefore, the monad Either carries two possible states: Right (without value) or Left (with an Error).
Hey, I am considering adopting the Result pattern in my codebase. Wanted to get some opinions from someone who has experience with it: should I start with language-ext or FunctionalExtensions?
Since then C# introduced nullable which takes away some of the needs for a Option type. So what is your opionion? Do libraries like Optional still have a place when nullable is enabled?
Project mention: Rolled my own Result<T,E> type that seems to work better than others. | /r/csharp | 2023-11-01BUT It is possible to implement it in a pretty good way. The main issue with the majority of existing libraries is that they're not able to guarantee that Error variant matching is exhaustive. Thus I'd recommend the usage of code generators libraries (https://github.com/domn1995/dunet looks like a good choice to start with) to build Result and Error(s) unions in a proper way
C# Functional programming related posts
- The Monad Invasion - Part 2: Monads in Action!
- The Monad Invasion - Part 1: What's a Monad?
- I modified and hacked away xonsh source code
- Why don't you just use F#?
- Nullable vs Option
- Option<T> monad for Unity/UniTask
- Result pattern: language-ext vs FunctionalExtensions?
-
A note from our sponsor - InfluxDB
www.influxdata.com | 19 Apr 2024
Index
What are some of the best open-source Functional programming projects in C#? This list will help you:
Project | Stars | |
---|---|---|
1 | language-ext | 6,150 |
2 | MoreLINQ | 3,587 |
3 | CSharpFunctionalExtensions | 2,220 |
4 | Optional | 876 |
5 | dunet | 470 |
6 | ObservableComputations | 107 |
7 | Curryfy | 62 |
8 | Optuple | 28 |
9 | FParsec.CSharp | 18 |
10 | Funk | 11 |
11 | moonad | 11 |
12 | func | 8 |
13 | YoowzxCalc | 7 |
14 | JFlepp.Maybe | 4 |
15 | csharp-combinators | 1 |