Displaying 1 to 20 from 20 results

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.

fantasy-land - Specification for interoperability of common algebraic structures in JavaScript

  •    Javascript

An algebra is a set of values, a set of operators that it is closed under and some laws it must obey. Each Fantasy Land algebra is a separate specification. An algebra may have dependencies on other algebras which must be implemented.

optparse-applicative - Applicative option parser

  •    Haskell

optparse-applicative is a haskell library for parsing options on the command line, providing a powerful applicative interface for composing these options. optparse-applicative takes care of reading and validating the arguments passed to the command line, handling and reporting errors, generating a usage line, a comprehensive help screen, and enabling context-sensitive bash, zsh, and fish completions.

immutable-ext - fantasyland extensions for immutablejs

  •    Javascript

Plus stuff that builds off of reduce like foldMap. Please contribute/complain as you want/need things.

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.

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.

swift-web - 🕸 A collection of Swift server-side frameworks for handling HTML, CSS, routing and middleware

  •    Swift

A collection of frameworks for solving various problems in building a Swift web framework. Each framework focuses on a single problem, like HTML rendering, CSS preprocessing, routing, middleware, and more. They also do not depend on any other framework in the collection. You can choose which pieces you want and don't want, for example you can use Html without Css. This library should be considered alpha, and not stable. Breaking changes will happen often.

fun-task - Abstraction for managing asynchronous code in JS

  •    Javascript

An abstraction for managing asynchronous code in JS.* The name is an abbreviation for "functional task" (this library is based on many ideas from Functional Programming). The type that library implements is usually referred to in the documentation as just "Task".


  •    Javascript

Provides an alternative Apply implementation for arrays. The common implementation of Apply for arrays works with all combinations. However, there is another implementation of Apply for arrays that works in "pairwise" fashion. You can think of this as a data type level encoding of the zip family of functions. Encoding the effect ("pairwise" application) in the data type allows us to write code that expresses our intentions better.

elixir-control - An exploratory look into functors, applicatives, and monads for Elixir

  •    Elixir

An exploratory look into functors, applicatives, and monads for Elixir. See the accompanying blog post for more details. More code, documentation, and tests are in progress.

aljebra - Toy implementations of the algebraic structures defined in the Fantasy Land specification, mostly borrowed from Haskell libraries

  •    Javascript

Aljebra provides toy implementations of the algebraic structures defined in the Fantasy Land specification, mostly borrowed from Haskell libraries. The following objects each implement a constructor allowing you to lift values into these base objects. Many of the other instances in this library are built on top of these base objects. As such, they implement a similar constructor pattern.

free - Combination of a free applicative functor and free monad

  •    Javascript

Combination of a Free applicative functor and Free monad. Free implements Functor, Applicative, ChainRec and Monad specifications.

data.validation - Migrated to https://github.com/origamitower/folktale

  •    LiveScript

The Validation(a, b) is a disjunction that's more appropriate for validating inputs, or any use case where you want to aggregate failures. Not only the Validation provides a better terminology for working with such cases (Failure and Success versus Left and Right), it also allows one to easily aggregate failures and successes as an Applicative Functor. This will generate the dist/data.validation.umd.js file, which you can load in any JavaScript environment.

owlet - Typed Spreadsheet UI library for ScalaJS

  •    Scala

Owlet is a Typed Spreadsheet UI library for ScalaJS. It is built on top of [Monix](https://monix.io/) and [Typelevel Cats](https://typelevel.org/cats/)' Applicative syntax to combine predefined input fields to a reactive user interface, just like what you would done in spreadsheet. Owlet is inspired by the PureScript library [Flare](https://github.com/sharkdp/purescript-flare).

functional-structures-refactoring-kata - Starting code and proposed solution for Functional Structures Refactoring Kata

  •    CSharp

This refactoring kata aims to let you practice with one of the main functional programming building block: Functional Structures. The starting code (provided in different languages) implements a use case with an imperative approach. Your mission is to remove every effects (aka computational context) within the applyDiscount function with the power of Functional Structures.