Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/busypeoples/functional-programming-javascript


https://github.com/busypeoples/functional-programming-javascript

Last synced: 2 months ago
JSON representation

Lists

README

        

# Functional Programming Resources In JavaScript

* [Blog Posts](#blog-posts)
* [Learning Resources](#learning-resources)
* [Talks](#talks)
* [Libraries](#libraries)
* [Follow](#follow)

## Blog Posts
Blog posts covering functional programming topics

* [Don’t Be Scared Of Functional Programming](http://www.smashingmagazine.com/2014/07/02/dont-be-scared-of-functional-programming/)

* [Higher-order functions](http://eloquentjavascript.net/05_higher_order.html) Eloquent JavaScript 2nd edition.

* [Functional Programming](http://eloquentjavascript.net/1st_edition/chapter6.html) Eloquent JavaScript 1st edition.

* [Functional JavaScript, some concepts](http://dreyacosta.com/functional-javascript/)

* [An Introduction to Functional Programming in JavaScript](https://bjpelc.wordpress.com/2015/02/06/an-introduction-to-functional-programming-in-javascript/)

* [From Map/Reduce to JavaScript Functional Programming](https://hacks.mozilla.org/2015/01/from-mapreduce-to-javascript-functional-programming/)

* [Functional Programming in JavaScript using LiveScript and prelude.ls](http://livescript.net/blog/functional-programming-in-javascript-using-livescript-and-prelude-ls.html)

* [Functional programming with Javascript](http://stephen-young.me.uk/2013/01/20/functional-programming-with-javascript.html)

* [Tacit Ramda](https://medium.com/@bobiblazeski/tacit-ramda-c914775ff4b1)

* [The Two Pillars of JavaScript — Pt 2: Functional Programming](https://medium.com/javascript-scene/the-two-pillars-of-javascript-pt-2-functional-programming-a63aa53a41a4)

* [Better world by better software FP posts](http://glebbahmutov.com/blog/tags/functional/)

* [Why The Hipsters Compose Everything](https://medium.com/@sharifsbeat/why-the-hipsters-compose-everything-9b0aa247944a#.fq9gq5ofj)

* [Currying & Partial Application](https://medium.com/@thinkfunctional/currying-partial-application-f1365d5fad3f)

* [From Callback to Future -> Functor -> Monad](https://medium.com/@yelouafi/from-callback-to-future-functor-monad-6c86d9c16cb5#.uxvl4j9yg)

* [Lenses with Immutable.js](https://medium.com/@drboolean/lenses-with-immutable-js-9bda85674780)

## Learning Resources
Posts, articles, videos focused on teaching functional programming

* [Property based testing in JavaScript](http://www.looprecur.com/blog/property-based-testing-in-javascript/) Introduction into property based testing by loop/recur

* [Functional Programming in Javascript](http://jhusain.github.io/learnrx/)

* [Functional Javascript Workshop](https://github.com/timoxley/functional-javascript-workshop) A functional javascript workshop. No libraries required (i.e. no underscore), just ES5.

* [Professor Frisby's Mostly Adequate Guide to Functional Programming] (https://github.com/MostlyAdequate/mostly-adequate-guide)

* [The introduction to Reactive Programming you've been missing](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754)

## Talks
Videos and Slides

* [Brian Lonsdorf - Hey Underscore, You're Doing It Wrong!](https://www.youtube.com/watch?v=m3svKOdZijA)

* [Brian Lonsdorf - Functional programming patterns for the non-mathematician](https://www.youtube.com/watch?v=AvgwKjTPMmM)

* [Trevor Landau - Functional JS](https://www.youtube.com/watch?v=XXZA6b8y8kM)

* [Pure JavaScript](https://vimeo.com/49384334)

* [Elise Huard: Why functional is the new black](https://www.youtube.com/watch?v=3ujq55fCx6o)

* [Christian Johansen - Pure, functional JavaScript](https://vimeo.com/43382919)

* [Scott Sauyet - Functional Programming](http://scott.sauyet.com/Javascript/Talk/FunctionalProgramming)

* [JavaScript Air Episode 003: Functional and Immutable Design Patterns in JavaScript](https://www.youtube.com/watch?v=82M9fKe7hiw)

## Libraries
Libraries that support functional programming

* [lodash](https://lodash.com/) - A JavaScript utility library delivering consistency, modularity, performance, & extras.

* [ramda](https://github.com/ramda/ramda) A practical functional library for Javascript programmers.

* [lazy.js](https://github.com/dtao/lazy.js) Like Underscore, but lazier.

* [underscore](jashkenas/underscore) Underscore.js is a utility-belt library for JavaScript.

* [bacon.js](https://github.com/baconjs/bacon.js/) FRP (functional reactive programming) library for Javascript.

* [fn.js](https://github.com/eliperelman/fn.js) A JavaScript library built to encourage a functional programming style & strategy.

* [fantasy-land](https://github.com/fantasyland/fantasy-land) Specification for interoperability of common algebraic structures in JavaScript.

* [mori](https://github.com/swannodette/mori) A simple bridge to ClojureScript's persistent data structures and supporting APIs for vanilla JavaScript.

* [immutable.js](https://github.com/facebook/immutable-js) Immutable persistent data collections for Javascript which increase efficiency and simplicity. The [chai-immutable plugin](https://github.com/astorije/chai-immutable) provides custom [Chai](http://chaijs.com/) assertions when testing against immutable objects.

## Follow
Blogs to follow

* [loop/recur](http://www.looprecur.com/) Brian Lonsdorf and his team