Top 20 NuGet maybe Packages
Option types for C# with LINQ support and rich fluent syntax for many popular uses:
var maybeOne = "one".ToMaybe();
Maybe<string> maybeAnother;
var maybeBoth =
from one in maybeOne
from another in maybeAnother
select one + another;
maybeBoth.Match(
both => Console.WriteLine("...
Optional is a robust option/maybe type for C#.
This package includes implementation of Maybe, Try, Either with set of utility extension methods.
SoftwareCraft.Maybe represents the OOP implementation of a functional concept. Instead of returning null, return a Maybe, and the code will be much cleaner and the intent much clearer.
A collection of useful types and operations on types.
This project provides the monads Maybe(of T) and Try(of T), both with full support for modern async/await code.
Yet another Maybe! This Maybe is an immutable monad type with enhancements for functional programming in C#. It implements several IEquatable and IComparable to nestle smoothly into existing code.
.NET library that provide mainly functional features for C#.
This means concept of Option, Result, Either and ValueObject.
Supported platforms:
- .NET Standard 1.0+
- .NET Core 1.0+
- .NET Framework 2.0+
Supports Source Link
Various useful functionality for Optional.
C# implementation of functional concepts: Maybe (Option), Either (Result), Try, Memoize
Nelibur.Sword is a library to take with you in the battle of Clean Code.
Useful Optional extensions for working with collections.
A lightweight wrapper type for optional values.
Function programming goodness: algebraic structures, Maybe, Either, Unit, State, Writer, Functor, Monad, Monoid, Lenses, and more.
Json converter for error-less serialization of Maybe type when using Newtonsoft.Json. Just add MaybeConverter to your list of Json converters.
The library for things that may or may not exist.
Existential is a utility library that contains parameter validation methods, a Maybe monad, and more. It can be used to work effectively with nulls, to efficiently resolve Code Analysis issues CA1062 and CA2000, to help generate a hash code, and to ...
A set of assertions for FluentAssertions which provides strong-typed assertions for instances of Optional.
Implements an option type (Strilanc.Value.May<T>) that encourages usage based on pattern matching rather than ForceGetValue. Also includes utility methods for producing, consuming and transforming May<T>.
Note on null: May<T> treats null like any other value. May.NoValue is distinct from null, and ...
Features implementations of some of the usual suspects from functional programming: option type (Maybe<T>), error types (Result<T, TError>, Outcome<T> and Fallible<T>) for Railway Oriented Programming, simple disjoint union (Either<T1, T2>), (finite and infinite) sequence generators and LINQ extensi...
Async extensions for Nils Lück's Optional library.