Displaying 1 to 20 from 39 results

language-ext - C# functional language extensions - a base class library for functional programming

  •    CSharp

This library uses and abuses the features of C# 6+ to provide a functional 'Base class library', that, if you squint, can look like extensions to the language itself.language-ext is an MIT-licensed open source project. Its ongoing development is made possible thanks to the support by these awesome backers. If you'd like to join them, check out the language-ext Patreon campaign. Or if you'd just like to help support the coffee fund, that is very welcome too!.

arrow - Functional companion to Kotlin's Standard Library

  •    Kotlin

Λrrow is a library for Typed Functional Programming in Kotlin. Arrow aims to provide a lingua franca of interfaces and abstractions across Kotlin libraries. For this, it includes the most popular data types, type classes and abstractions such as Option, Try, Either, IO, Functor, Applicative, Monad to empower users to write pure FP apps and libraries built atop higher order abstractions.

crocks - A collection of well known Algebraic Data Types for your utter enjoyment.

  •    Javascript

crocks is a collection of popular Algebraic Data Types (ADTs) that are all the rage in functional programming. You have heard of things like Maybe and Either and heck maybe even IO, that is what these are. The main goal of crocks is to curate and provide not only a common interface between each type (where possible of course), but also provide all of the helper functions needed to hit the ground running. There are many options to use crocks to suit the needs of your, projects. When used on the backend or in an environment where size is not a big concern, the entire lib can be brought in and the various elements can be either be plucked off of or referenced by the namespace.

freestyle - A cohesive & pragmatic framework of FP centric Scala libraries

  •    Scala

Build stack-safe purely functional applications and libraries that support parallel and sequential computations where declaration is decoupled from interpretation. Freestyle encourages programs built atop Free algebras that are interpreted at the edge of your application ensuring effects are localized and performed in a controlled environment. Applications built with Freestyle can be interpreted to any runtime semantics supported by the interpreter target type. Freestyle includes all the implicit machinery necessary to achieve seamless dependency injection of @free and @module Algebras. Simply require any of your @free or @module trait as implicits where needed.




data.task - Migrating to https://github.com/origamitower/folktale

  •    Javascript

The Task(a, b) structure represents values that depend on time. This allows one to model time-based effects explicitly, such that one can have full knowledge of when they're dealing with delayed computations, latency, or anything that can not be computed immediately. A common use for this monad is to replace the usual Continuation-Passing Style form of programming, in order to be able to compose and sequence time-dependent effects using the generic and powerful monadic operations.

learn-fp - learn-by-doing course/tutorial for functional programming on scala

  •    Scala

This course/tutorial was created with purpose to better understand functional programming idioms using Scala language. It covers type classes, monoids, functors, applicatives, monads, traversable/foldable, monad transformers, free monad. Material is structured as set of stub/unimplemented functions/classes and tests for them. Your objective is to make all unit tests green. It is learn-by-doing course. NICTA course was a great and interesting challenge for me to do in Haskell. I think Scala community will benefit from the similar course.

fetch - Simple & Efficient data access for Scala and Scala.js

  •    Scala

Add the following dependency to your project's build file. Fetch is a library for making access to data both simple and efficient. Fetch is especially useful when querying data that has a latency cost, such as databases or web services.

fetch - Simple & Efficient data access for Scala and Scala.js

  •    Scala

Add the following dependency to your project's build file.Fetch is a library for making access to data both simple & efficient. Fetch is especially useful when querying data that has a latency cost, such as databases or web services.


freer-cofreer - freer monads and cofreer comonads.

  •    Haskell

This is an implementation of the Freer monad described by Oleg Kiselykov in Free and Freer Monads: Putting Monads Back in the Closet, and the Cofreer comonad, defined by analogy with Freer. The constraints placed on the constructors of PromptF mean that it doesn’t admit a Functor instance, and thus is not very useful with Free. With Freer, you get Functor, Applicative, and Monad instances with PromptF “for free,” complete with the majority of the API defined in Control.Monad.Free.Freer.

functional-error-handling - Functional Error Handling

  •    Javascript

Exceptions in OOP centric langs such as Java are abused for control flow and event signaling. Lack of proper support for Monads, Higher Kinded Types and other facilities leave lang users with no alternative but to choose happy paths as return types of method signatures.In this talk we will cover some examples regarding the misuse of exceptions and proper data types such as Option, Try, Either[E, A] and MonadError[M[_], E] to model absence of values, failing computations and alternate paths in method return types.

Forbind - Functional chaining and promises in Swift

  •    Swift

Note: still in an experimental state. Everything could change. I would love some feedback on this. Write to @ulrikdamm on Twitter. For more details, read my Blog post.

free-proving - Resources for "One Monad to Prove Them All (Functional Pearl)"

  •    Coq

Resources for One Monad to Prove Them All (Functional Pearl) (submitted to Haskell'18) by Jan Christiansen, Sandra Dylus and Finn Teegen.

kea - Composable Functional Programming in R

  •    R

In practice, Kea is a collection of higher-order functions and standard collection algorithms that abstracts over the difference between atomic vectors, lists and pairlists. In this way Kea resembles the STL for C++ or Underscore for JavaScript. The best way to get Kea is through github. You must install from the releases branch; Kea is in rapid development and breaking changes are frequently made.

monadjs - Monad Library for JavaScript

  •    Javascript

Use browserify to use in browser. See examples folder.

freestyle-cassandra - Freestyle Cassandra

  •    Scala

[Cassandra] atop Freestyle is frees-cassandra. Freestyle Cassandra is Scala Purely Functional driver for Cassandra based on the datastax Java Driver. [frees-cassandra] is a library to interact with cassandra built atop Free and using the Datastax Cassandra Driver for connecting to a Cassandra instance. It follows the [Freestyle] philosophy, being macro-powered.

freestyle-rpc - Freestyle RPC is a purely functional library for building RPC endpoint based services with support for RPC and HTTP/2

  •    Scala

Freestyle RPC is a purely functional library for building RPC endpoint-based services with support for RPC and HTTP/2. Also known as frees-rpc, it brings the ability to combine RPC protocols, services, and clients in your Freestyle program, thanks to gRPC.