Funcky is a library that empowers C# developers to write code using functional programming paradigms.

Why Funcky?

Functional programming is the oldest of the three major programming paradigms, none the less it is the last which gets wide spread usage. Even in languages like C++, Java or C# we want to use a functional style of programming.

LINQ is the first monad which got wide spread use in C#, and most C# programmers were not even aware of it beeing a monad, which probably helped.

Funcky builds on the success of LINQ and introduces tools for functional programming to C# in a way that feels consistent with the .NET BCL.


  • Option<T>

    The Option<T> monad is a safe and composable tool for working with optional values.

    Read more
  • Either<L, R>

    The Either monad is a composable tool for functional error handling.

  • Extensions

    Funcky extends the BCL with a wide range of additional extension methods for IEnumerable<T>, string, IAsyncEnumerable<T> and more.

    Read more

Getting started

Get the latest version from NuGet:

Install-Package Funcky -Version 3.3.0
dotnet add package Funcky --version 3.3.0
<PackageReference Include="Funcky" Version="3.3.0" />
#r "nuget: Funcky, 3.3.0"