dunet
csharp-combinators
dunet | csharp-combinators | |
---|---|---|
3 | 1 | |
475 | 1 | |
- | - | |
8.5 | 0.0 | |
14 days ago | about 3 years ago | |
C# | C# | |
MIT License | Creative Commons Zero v1.0 Universal |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dunet
-
Rolled my own Result<T,E> type that seems to work better than others.
BUT 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
-
How do you live without tagged union types?
Or use something like dunet https://github.com/domn1995/dunet
- Dunet: C# discriminated union source generator
csharp-combinators
-
The C-Combinator isn't so useless
Very neat article. For anyone interested in more, the author has posted their other c# combinator experiments at: csharp-combinators/Combinator.cs at master ยท mr-rampage/csharp-combinators (github.com)
What are some alternatives?
OneOf - Easy to use F#-like ~discriminated~ unions for C# with exhaustive compile time matching
language-ext - C# functional language extensions - a base class library for functional programming
csharplang - The official repo for the design of the C# programming language
Funk - Functional programming library for C#
ZeroQL - C# GraphQL client with Linq-like syntax
Curryfy - Provides strongly typed extensions methods for C# delegates to take advantages of functional programming techniques, like currying and partial application.
plato - A simple and efficient cross-platform programming language.
mapperly - A .NET source generator for generating object mappings. No runtime reflection.
func - Library to extend C#'s functional programming capabilities
stronginject - compile time dependency injection for .NET