arrow - Functional companion to Kotlin's Standard Library

  •        69

Λ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.



Related Projects

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.

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.

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!.

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.

eff - Eff monad for cats -

  •    Scala

Extensible effects are an alternative to monad transformers for computing with effects in a functional way. This library is based on the "free-er" monad and extensible effects described in Oleg Kiselyov in Freer monads, more extensible effects. You can also check out this presentation at flatMap Oslo 2016 (slides).

Monads for .NET


Monads for .NET is helpers for C# which makes easier your every day programmer life. Now supports .NET 3.5-4.0, Silverlight 3-5 and Windows Phone 7. In functional programming, a monad is a programming structure that represents computations. Monads are a kind of abstract dat...

eff - A functional programming language based on algebraic effects and their handlers.

  •    OCaml

Eff is a functional programming language based on algebraic effects and their handlers. Algebraic effects are a way of adding computational effects to a pure functional setting. In a technical sense they are subsumed by the monadic approach to computational effects, but they offer new ways of programming that are not easily achieved with monads. In particular, algebraic effects are combined seamlessly, whereas monad transformers are needed in the monadic style.

funKTionale - Functional constructs for Kotlin

  •    Kotlin

Functional constructs and utilities for Kotlin

fluokitten - Category theory concepts in Clojure - Functors, Applicatives, Monads, Monoids and more.

  •    Clojure

Fluokitten is a Clojure library that implements category theory concepts, such as functors, applicative functors, monads, monoids etc. in idiomatic Clojure. There is a lot of documentation and tutorials at Fluokitten Website. Please make sure to check it out.

scalaz-zio - ZIO — A principled, powerful, standalone effect data type for any Scala project.

  •    Scala

The ZIO library provides a general-purpose effect monad and associated abstractions for purely functional Scala applications. Effect monads like IO are how purely functional programs interact with the real world. Functional programmers use them to build complex, real world software without giving up the equational reasoning, composability, and type safety afforded by purely functional programming.

cyclops-react - An advanced, but easy to use, platform for writing functional applications in Java 8

  •    Java

Powerful Streams and functional data types for building modern Java 8 applications. We extend JDK interfaces where possible for maximum integration.ReactiveSeq extends JDK Stream and offers multiple modes of execution - synchonous, asynchronous, asynchronous with backpressure, parallel and more.

category-theory-programmers - Notes on category theory in the context of (functional) programming


This document contains notes on category theory in the context of (functional) programming. Originally they were lecture notes for a seminar hosted at Centrum Wiskunde & Informatica, the national research centre for mathematics and computer science in the Netherlands. The main reason for compiling these notes is to provide a way to gain familiarity with concepts of category theory (and other branches of mathematics) that apply in a broad sense to the field of functional programming. The notes are written in Markdown, and pandoc is used to generate the document. Running make inside the doc directory should result in an (updated) pdf, granted that pandoc, pandoc-citeproc and a LaTeX environment are installed.

witchcraft - Monads and other dark magic for Elixir

  •    Elixir

Witchcraft is a library providing common algebraic and categorical abstractions to Elixir. Monoids, functors, monads, arrows, categories, and other dark magic right at your fingertips. You shouldn't have to learn another language just to understand powerful abstractions! By enabling people to use a language that they already know, and is already in the same ballpark in terms of values (emphasis on immutability, &c), we can teach and learn faster.

csharp-monad - Library of monads for C#

  •    CSharp

A C# library of monads and a full set of parser combinators based on the Haskell Parsec library.The library is stable, functional and pretty well tested.

hamsters - A mini Scala utility library

  •    Scala

A mini Scala utility library. Compatible with functional programming beginners. For the JVM and Scala.js.

Android-CleanArchitecture-Kotlin - This is a movies sample app in Kotlin, which is part of a serie of blog posts I have written about architecting android application using different approaches

  •    Kotlin

The purpose of this repo is to follow up Clean Architecture principles by bringing them to Android. It is worth saying that the idea is to take advantage of the Kotlin Programming Language features plus also pull in lessons learned and ideas from other interesting aproaches like Functional Programming. There is another Android Clean Architecture repository written in Java: with really nice discussions: Article, lessons learned and some more material coming up. Check the following known bugs and TODO list.

funfix - Functional Programming Library for JavaScript, TypeScript and Flow ✨⚡️

  •    TypeScript

Funfix is a library of type classes and data types for Functional Programming in JavaScript, TypeScript and Flow. Inspired by Scala, Cats and Monix.