Related Projects

Eta - A powerful language for building scalable systems on the JVM

  •    Haskell

Eta is a pure, lazy, strongly typed functional programming language on the JVM. It is a dialect of Haskell on the JVM. It is pure by default which means that calling a function with the same arguments will yield the same results every time. It is lazy by default which means that data stays in unevaluated state until a function needs to peek inside.

FpSharp

  •    CSharp

Provides functional programming abstractions for C# including map, fold, filter functions for .NET collections, the option data type, a lazy type, a functional list type, lazy functional lists, and more. Superseded by http://sf.net/projects/sasa/

streamjs - Lazy Object Streaming Pipeline for JavaScript

  •    Javascript

Stream.js is a lightweight (2.6 KB minified, gzipped), intensely tested (700+ assertions, 97% coverage) functional programming library for operating upon collections of in-memory data. It requires EcmaScript 5+, has built-in support for ES6 features and works in all current browsers, Node.js and Java 8 Nashorn. Before explaining how Stream.js works in detail, here's a few real world code samples.

luafun - Lua Fun is a high-performance functional programming library for Lua designed with LuaJIT's trace compiler in mind

  •    Lua

Lua Fun is a high-performance functional programming library for Lua designed with LuaJIT's trace compiler in mind. Lua Fun provides a set of more than 50 programming primitives typically found in languages like Standard ML, Haskell, Erlang, JavaScript, Python and even Lisp. High-order functions such as map, filter, reduce, zip, etc., make it easy to write simple and efficient functional code.

FC++: Functional Programming in C++

  •    

FC++ is a software library which aims to facilitate the functional programming paradigm, as well as other declarative paradigms, within the C++ programming language. It provides Haskell-like functoids, lazy lists, currying, lambda, monads and more!


wu.js - A lazy, functional Javascript library that ain't nuthin' ta f*ck wit.

  •    Javascript

A lazy, functional Javascript library that ain't nuthin' ta f*ck wit.

Streams - Lazy evaluation in C++ - http://jscheiny.github.io/Streams/

  •    C++

Streams is a C++ library that provides lazy evaluation and functional-style transformations on the data, to ease the use of C++ standard library containers and algorithms. Streams support many common functional operations such as map, filter, and reduce, as well as various other useful operations such as various set operations (union, intersection, difference), partial sum, and adjacent difference, as well as many others. To use, simply #include "Stream.h", and compile using a C++14 compatible compiler. All streams classes/functions can be found in the stream namespace.

awesome-fp-js - :sunglasses: A curated list of awesome functional programming stuff in js

  •    

This is a curated list of awesome functional programming code and learning resources for JavaScript. As a multi-paradigm programming language, JavaScript can be written in many styles. With these resources we want to help you to make better use of JavaScript’s support for writing programs in a functional way. Functional programming is a style of programming which models computations as the evaluation of expressions. Contrast this with imperative programming where programs are composed of statements which change global state when executed. Functional programming typically avoids using mutable state and favors side-effect free functions and immutable data instead. This encourages writing composable and declarative programs that are easy to reason about.

Functional-Light-JS - A book about functional programming in JavaScript. @FLJSBook on twitter.

  •    Javascript

This book explores the core principles of functional programming (FP) as they are applied to JavaScript. But what makes this book different is that we approach these principles without drowning in all the heavy terminology. We look at a subset of FP foundational concepts that I call "Functional-Light Programming" (FLP) and apply it to JavaScript.Note: Despite the word "Light" in the title, I do not consider or recommend this book as a "beginner", "easy", or "intro" book on the topic. This book is rigorous and full of gritty detail; it expects a solid foundation of JS knowledge before diving in. "Light" means limited in scope; instead of being more broad, this book goes much deeper into each topic than you typically find in other FP-JavaScript books.

cloe - Cloe programming language

  •    Go

Cloe is the timeless functional programming language. It aims to be simple and practical. Go 1.8+ is required.

cats - Lightweight, modular, and extensible library for functional programming.

  •    Scala

Cats is a library which provides abstractions for functional programming in the Scala programming language. The name is a playful shortening of the word category. Scala supports both object-oriented and functional programming, and this is reflected in the hybrid approach of the standard library. Cats strives to provide functional programming abstractions that are core, binary compatible, modular, approachable and efficient. A broader goal of Cats is to provide a foundation for an ecosystem of pure, typeful libraries to support functional programming in Scala applications.

Elm - Functional Reactive Programming Language compiles to Javascript

  •    Javascript

Elm is a functional reactive programming (FRP) language that compiles to HTML, CSS, and JS. FRP is a concise and elegant way to create highly interactive applications and avoid callbacks. It aims to make web development more pleasant. Functional Reactive Programming (FRP) is a high-level way to work with interactions. It provides control flow structures for time.

Vavr - Object-functional language extension to Java

  •    Java

Vavr is an object-functional language extension to Java 8, which aims to reduce the lines of code and increase code quality. It provides persistent collections, functional abstractions for error handling, concurrent programming, pattern matching and much more.

flyd - The minimalistic but powerful, modular, functional reactive programming library in JavaScript

  •    Javascript

The modular, KISS, functional reactive programming library for JavaScript. Functional reactive programming is a powerful programming paradigm for expressing values that change over time. But existing libraries for JavaScript are huge, complex, have a high learning curve and aren't functional enough.

Ramda - Practical functional Javascript library

  •    Javascript

A practical functional library for JavaScript programmers. There are already several excellent libraries with a functional flavor. Typically, they are meant to be general-purpose toolkits, suitable for working in multiple paradigms. Ramda has a more focused goal. We wanted a library designed specifically for a functional programming style, one that makes it easy to create functional pipelines, one that never mutates user data.

Nspl - Non-standard PHP library - functional primitives toolbox and more

  •    PHP

You can see more examples in the library reference below or here. This is documentation for the dev version 1.3.*-dev which contains the latest changes. For the version 1.2 (last stable version) documentation click here.

scalacaster - Purely Functional Algorithms and Data Structures in Scala

  •    Scala

Since Fender Stratocaster is a classic guitar, Scalacaster is about classic algorithms and data structures in Scala. Scalacaster includes loads of widely used implementation techniques and approaches, which have been developed by best programmers and enthusiasts of functional programming. Studying purely functional data structures is always fun and challenge for researchers, since data structures in a functional setting are much elegant and smarter than in an imperative setting. Scalacaster is neither a library nor framework. Moreover, Scalacaster`s code is not supposed to be executed at all. Scalacaster's code is not for Scala compiler but for human beings, for enthusiasts and researchers of the Scala programming language and its application in the area of implementation of the purely functional data structures. So, the best way to use Scalacaster is to read through its source code and comments.

turbine - Purely functional frontend framework for building web applications

  •    TypeScript

A purely functional frontend framework based on functional reactive programming. Experimental. The JavaScript world is full of frameworks. So why another one? Because we want something different. We want something that is purely functional without compromises. Something that takes the best lessons from existing JavaScript frameworks and couples them with the powerful techniques found in functional languages like Haskell. We want a framework that is highly expressive. Because when functional programming is at its best it gives you more power, not less. Turbine is supposed to be approachable for typical JavaScript developers while still preserving the benefits that comes from embracing purely functional programming.