└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Functional Programming Resources In JavaScript 2 | 3 | * [Blog Posts](#blog-posts) 4 | * [Learning Resources](#learning-resources) 5 | * [Talks](#talks) 6 | * [Libraries](#libraries) 7 | * [Follow](#follow) 8 | 9 | ## Blog Posts 10 | Blog posts covering functional programming topics 11 | 12 | * [Don’t Be Scared Of Functional Programming](http://www.smashingmagazine.com/2014/07/02/dont-be-scared-of-functional-programming/) 13 | 14 | * [Higher-order functions](http://eloquentjavascript.net/05_higher_order.html) Eloquent JavaScript 2nd edition. 15 | 16 | * [Functional Programming](http://eloquentjavascript.net/1st_edition/chapter6.html) Eloquent JavaScript 1st edition. 17 | 18 | * [Functional JavaScript, some concepts](http://dreyacosta.com/functional-javascript/) 19 | 20 | * [An Introduction to Functional Programming in JavaScript](https://bjpelc.wordpress.com/2015/02/06/an-introduction-to-functional-programming-in-javascript/) 21 | 22 | * [From Map/Reduce to JavaScript Functional Programming](https://hacks.mozilla.org/2015/01/from-mapreduce-to-javascript-functional-programming/) 23 | 24 | * [Functional Programming in JavaScript using LiveScript and prelude.ls](http://livescript.net/blog/functional-programming-in-javascript-using-livescript-and-prelude-ls.html) 25 | 26 | * [Functional programming with Javascript](http://stephen-young.me.uk/2013/01/20/functional-programming-with-javascript.html) 27 | 28 | * [Tacit Ramda](https://medium.com/@bobiblazeski/tacit-ramda-c914775ff4b1) 29 | 30 | * [The Two Pillars of JavaScript — Pt 2: Functional Programming](https://medium.com/javascript-scene/the-two-pillars-of-javascript-pt-2-functional-programming-a63aa53a41a4) 31 | 32 | * [Better world by better software FP posts](http://glebbahmutov.com/blog/tags/functional/) 33 | 34 | * [Why The Hipsters Compose Everything](https://medium.com/@sharifsbeat/why-the-hipsters-compose-everything-9b0aa247944a#.fq9gq5ofj) 35 | 36 | * [Currying & Partial Application](https://medium.com/@thinkfunctional/currying-partial-application-f1365d5fad3f) 37 | 38 | * [From Callback to Future -> Functor -> Monad](https://medium.com/@yelouafi/from-callback-to-future-functor-monad-6c86d9c16cb5#.uxvl4j9yg) 39 | 40 | * [Lenses with Immutable.js](https://medium.com/@drboolean/lenses-with-immutable-js-9bda85674780) 41 | 42 | ## Learning Resources 43 | Posts, articles, videos focused on teaching functional programming 44 | 45 | * [Property based testing in JavaScript](http://www.looprecur.com/blog/property-based-testing-in-javascript/) Introduction into property based testing by loop/recur 46 | 47 | * [Functional Programming in Javascript](http://jhusain.github.io/learnrx/) 48 | 49 | * [Functional Javascript Workshop](https://github.com/timoxley/functional-javascript-workshop) A functional javascript workshop. No libraries required (i.e. no underscore), just ES5. 50 | 51 | * [Professor Frisby's Mostly Adequate Guide to Functional Programming] (https://github.com/MostlyAdequate/mostly-adequate-guide) 52 | 53 | * [The introduction to Reactive Programming you've been missing](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754) 54 | 55 | ## Talks 56 | Videos and Slides 57 | 58 | * [Brian Lonsdorf - Hey Underscore, You're Doing It Wrong!](https://www.youtube.com/watch?v=m3svKOdZijA) 59 | 60 | * [Brian Lonsdorf - Functional programming patterns for the non-mathematician](https://www.youtube.com/watch?v=AvgwKjTPMmM) 61 | 62 | * [Trevor Landau - Functional JS](https://www.youtube.com/watch?v=XXZA6b8y8kM) 63 | 64 | * [Pure JavaScript](https://vimeo.com/49384334) 65 | 66 | * [Elise Huard: Why functional is the new black](https://www.youtube.com/watch?v=3ujq55fCx6o) 67 | 68 | * [Christian Johansen - Pure, functional JavaScript](https://vimeo.com/43382919) 69 | 70 | * [Scott Sauyet - Functional Programming](http://scott.sauyet.com/Javascript/Talk/FunctionalProgramming) 71 | 72 | * [JavaScript Air Episode 003: Functional and Immutable Design Patterns in JavaScript](https://www.youtube.com/watch?v=82M9fKe7hiw) 73 | 74 | ## Libraries 75 | Libraries that support functional programming 76 | 77 | * [lodash](https://lodash.com/) - A JavaScript utility library delivering consistency, modularity, performance, & extras. 78 | 79 | * [ramda](https://github.com/ramda/ramda) A practical functional library for Javascript programmers. 80 | 81 | * [lazy.js](https://github.com/dtao/lazy.js) Like Underscore, but lazier. 82 | 83 | * [underscore](jashkenas/underscore) Underscore.js is a utility-belt library for JavaScript. 84 | 85 | * [bacon.js](https://github.com/baconjs/bacon.js/) FRP (functional reactive programming) library for Javascript. 86 | 87 | * [fn.js](https://github.com/eliperelman/fn.js) A JavaScript library built to encourage a functional programming style & strategy. 88 | 89 | * [fantasy-land](https://github.com/fantasyland/fantasy-land) Specification for interoperability of common algebraic structures in JavaScript. 90 | 91 | * [mori](https://github.com/swannodette/mori) A simple bridge to ClojureScript's persistent data structures and supporting APIs for vanilla JavaScript. 92 | 93 | * [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. 94 | 95 | ## Follow 96 | Blogs to follow 97 | 98 | * [loop/recur](http://www.looprecur.com/) Brian Lonsdorf and his team 99 | 100 | 101 | 102 | --------------------------------------------------------------------------------