Functional Programming

  •        36

This project brings some features from functional languages, like pattern matching, collection unfold or partial function application to C# and extends the possibilities of functional programming in C#. It's available as C# library.

http://funcprogramming.codeplex.com/

Tags
Implementation
License
Platform

   




Related Projects

pyfpm - Scala-like functional pattern matching in Python


Scala-like functional pattern matching in Python

funcy - An experiment in adding functional pattern matching to JavaScript


An experiment in adding functional pattern matching to JavaScript

SharpMatch - A small Pattern Matching library for functional programming in C#


A small Pattern Matching library for functional programming in C#

egison4 - The pattern-matching-oriented pure functional programming language Egison version 4


The pattern-matching-oriented pure functional programming language Egison version 4

egison3 - The pattern-matching-oriented pure functional programming language Egison version 3


The pattern-matching-oriented pure functional programming language Egison version 3



Vavr - Object-functional language extension to 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.

derive4j - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, morphisms, (near future: optics and typeclasses)


tl;dr Show me how to write, say, the Either sum type with Derive4J!.This project has a special dedication to Tony Morris' blog post Debut with a catamorphism. I'm also very thankful to @sviperll and his adt4j project which was the initial inspiration for Derive4J.

patternies - Pattern matching for hardcore pattern matching lovers: Scala-lovers friendly.


Pattern matching for hardcore pattern matching lovers: Scala-lovers friendly.

cats.match - Pattern matching for the monads in the cats Clojure library


cats.match provides pattern matching for the monads in the clojure cats library.It uses the core.match library to do the pattern matching part.

Functional C#


Simple Functional Programming Library for C#. It introduces several features found in programming languages like F#. It is built in a compositional fashion starting from Pattern Matching and building on that to support Object Expressions, Tuples, Active Patterns, ADTs.

optima-binary-heap - based on Purely Functional Data Structures, Chris Okasaki '96 p.70


MIN-HEAP implementation of common lisp, using OPTIMA and functional/pattern-matching paradigm extensively.

py-pattern-matching - Pattern matching data structures for Python


Pattern matching data structures for Python

cl-pattern-matching - Erlang/Haskell style pattern matching macros for Common Lisp.


Erlang/Haskell style pattern matching macros for Common Lisp.

tamale - TAble MAtching Lua Extension - An Erlang-style pattern-matching library for Lua


TAble MAtching Lua Extension - An Erlang-style pattern-matching library for Lua

tree-matching - Tree pattern matching for Clojure


Tree pattern matching for Clojure

optima-red-black-tree - red-black-tree, initially written by m2ym


Red-black tree, based on the implementation at https://gist.github.com/m2ym/4245414, using OPTIMA and functional/pattern-matching paradigm extensively.

optima-priority-queue-rb - based on optima-red-black-tree


Priority-queue implementation, based on optima-red-black-tree. Using OPTIMA and functional/pattern-matching paradigm extensively.

optima-bdd - BDD


Orderd BDD, and possibly ZDD, ADD implementation of common lisp, using OPTIMA and functional/pattern-matching paradigm extensively.

immutable-struct


Simple library that encourage the use of functional programming + pattern matching.

HowFar


An attempt to see whether some aspects of functional programming could be elegant in C#; I'd say it is not ATM. Maybe it would be if I would combine it with pattern matching.