89 packages tagged with “functional-programming”
Total functions made convenient for F# and C#
Currying and Partial application for C# functions and actions.
Memoize functions with ease
A methods to operate collections and flow control. Please see github to get-started guide: https://github.com/andriyshevchenko/collections. Using a C# 6.0 static import required. Extensive use of C# 7.0 ValueTuple's
LINQ Extended Design. Additional C# extension methods (inspired by LINQ) and F# collection functions
Select partial functions made to have warnings in F#
Immutability is easy!
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.
Basic statistics with some probability library. Includes common distributions (Bernoulli, Binomial, Poisson, Student's and Normal), random number generators from some of the distributions, summary statistics for a sample, Z-Test, Student's T-Test, special functions (Error, Gamma, Beta and Regularized Incomplete Beta).
Collection of basic monads and functional extensions for C#
SoftwareCraft.Result represents the OOP implementation of a functional concept. Instead of throwing an exception, return a Result, and the code will be much cleaner and the intent much clearer.
Provides functional-style extensions for C# 's function type.
A monads package for C#
SoftwareCraft.Either represents the OOP implementation of a functional concept.
The Try monad (Error/Exceptional monad) for C# with LINQ support and rich fluent syntax.
A simple F#'s monads port for C#
Cross-platform .NET library for computations whose arguments and results are objects that implement INotifyPropertyChanged and INotifyCollectionChanged (ObservableCollection) interfaces. The computations include ones similar to LINQ (collections), the computation of arbitrary expression (scalar value), and additional features. The computations are implemented as extension methods, like LINQ ones. You can combine calls of ObservableComputations extension methods including chaining and nesting, as you do for LINQ methods. Computations in background threads, including parallel ones, as well as time-related processing of CollectionChanged and PropertyChanged events, are supported. ObservableComputations is easy to use and powerful implementation of reactive programming paradigm. With ObservableComputations, your code will fit more to the functional style than with standard LINQ.
Provides C# implementation of few patterns and structures theorized in category theory
A methods to create series of numbers and operate vectors
A small library to allow writing C# in a more functional style. This is for the .NET Standard compatibility. There is another NuGet version of this library for the full .NET Framework 4.5. Visit https://github.com/Hallmanac/Funqy-CSharp for more detailed information. 1.0.0 -- Initial release of library after 8 months of internal use on several projects. 1.0.1 -- Added missing XML documentation comments and added additional check for string null or empty on the HasValue property inside FunqResult 1.1.0 -- Added support for .NET 4.5 in the same NuGet package.
Lightweight functional programming library for C#. IO monad, Unit, Maybe, Either, immutable collections, and more
A library which enables more powerful pattern matching than is currently available in the switch statement/expression
Guard patterns
PureSharp contains functional concepts for a safer C# expirience
A high-performance memoization library for .NET that helps create cached functions with automatic result caching. Supports multiple cache implementations and provides efficient memory management for function result caching and performance optimization.
SoftwareCraft.Forge is the base library for the entire SoftwareCraft universe.
Functional programming library for C#
The core library for DropBear.Codex providing Result pattern, error handling, and telemetry infrastructure for .NET 9+ applications. Features type-safe error handling, functional extensions, and OpenTelemetry integration.