├── .gitignore ├── README.md ├── _haskell.md ├── fp.md ├── frp.md └── rsfa.md /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .idea/ 3 | .DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [Awesome Functional Programming](https://en.wikipedia.org/wiki/Functional_programming) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 2 | 3 | ## Contents 4 | 5 | - [Tutorials and Articles](#tutorials-and-articles) 6 | - [Lenses](#lenses) 7 | - [Monads](#monads) 8 | - [Purescript](#purescript) 9 | - [Elm](#elm) 10 | - [Awesome](#awesome) 11 | - [Books](#books) 12 | - [Resources](#resources) 13 | - [Combinators](#combinators) 14 | - [Presentations](#presentations) 15 | - [Videos](#videos) 16 | - [Youtube channels](#youtube-channels) 17 | - [Libraries](#libraries) 18 | - [JavaScript](#javascript) 19 | - [LiveScript](#livescript) 20 | - [Java](#java) 21 | - [Clojure/ClojureScript](#clojureclojurescript) 22 | - [Scala](#scala) 23 | - [Kotlin](#kotlin) 24 | - [F#](#f) 25 | - [C#](#c) 26 | - [Swift](#swift) 27 | - [Python](#python) 28 | - [PHP](#php) 29 | - [Rust](#rust) 30 | - [Julia](#julia) 31 | - [Go](#go) 32 | - [Haskell](#haskell) 33 | - [Elixir](#elixir) 34 | - [Erlang](#erlang) 35 | - [OCaml](#ocaml) 36 | - [Racket](#racket) 37 | - [Languages](#languages) 38 | 39 | ## Tutorials and Articles 40 | 41 | * [Thinking in Ramda - Blog series](http://randycoulman.com/blog/categories/thinking-in-ramda/) 42 | * [Part 1: An Intro to Functional Programming Concepts in JavaScript](https://medium.com/@collardeau/intro-to-functional-programming-concepts-in-javascript-b0650773139c) 43 | * [Part 2: An Intro to Functional Programming Concepts in JavaScript](https://medium.com/@collardeau/intro-to-functional-programming-concepts-in-javascript-part-2-f45228c49eed) 44 | * [Part 3: An Intro to Functional Programming Concepts in JavaScript](https://medium.com/@collardeau/part-3-an-intro-to-functional-programming-concepts-in-javascript-febf9368ffe6) 45 | * [Dipping into wu.js: autoCurry](https://javascriptweblog.wordpress.com/2010/06/14/dipping-into-wu-js-autocurry) 46 | * [Haskell in ES6: Part 1](http://casualjavascript.com/?1) 47 | * [Haskell in ES6: Part 2](http://casualjavascript.com/?2) 48 | * [Haskell in ES6: Project Euler 1-5](http://casualjavascript.com/?3) 49 | * [Don’t Be Scared Of Functional Programming](http://www.smashingmagazine.com/2014/07/dont-be-scared-of-functional-programming) 50 | * [Short cut fusion](https://wiki.haskell.org/Short_cut_fusion) 51 | * [My favorite functional adaptors](http://glebbahmutov.com/blog/my-favorite-functional-adaptors) 52 | * [Functional pipeline](http://glebbahmutov.com/blog/functional-pipeline) 53 | * [Partial argument binding with heroin](http://glebbahmutov.com/blog/partial-argument-binding-with-heroin/) 54 | * [Too much curry](http://glebbahmutov.com/blog/too-much-curry/) 55 | * [Lodash to Ramda example](http://glebbahmutov.com/blog/lodash-to-ramda-example/) 56 | * [Functional JavaScript interview question](http://glebbahmutov.com/blog/functional-js-interview-question/) 57 | * [Configurable function pattern](http://glebbahmutov.com/blog/configurable-function-pattern/) 58 | * [Combine promises with Maybe functors](http://glebbahmutov.com/blog/combine-promises-with-maybe-functors/) 59 | * [Test if a function is pure](http://glebbahmutov.com/blog/test-if-a-function-is-pure/) 60 | * [Functor + Applicative = Applier](http://glebbahmutov.com/blog/appliers/) 61 | * [Point-free programming is not pointless](http://glebbahmutov.com/blog/point-free-programming-is-not-pointless/) 62 | * [Immutable JavaScript example](http://glebbahmutov.com/blog/immutable-javascript-example/) 63 | * [Separate work from control flow using functional programming](http://glebbahmutov.com/blog/separate-work-from-control-flow-using-functional-programming/) 64 | * [OO vs FP console log example](http://glebbahmutov.com/blog/oo-vs-fp-log-example/) 65 | * [Essence of functional programming](http://glebbahmutov.com/blog/essence-of-functional-programming/) 66 | * [Adapted point-free callbacks](http://glebbahmutov.com/blog/adapted-point-free-callbacks/) 67 | * [Counting predicates](http://glebbahmutov.com/blog/counting-predicates/) 68 | * [Run N promises in parallel](http://glebbahmutov.com/blog/run-n-promises-in-parallel/) 69 | * [Too much point-free](http://glebbahmutov.com/blog/too-much-point-free/) 70 | * [Factorial using promises](http://glebbahmutov.com/blog/factorial-using-promises/) 71 | * [Reduce reigns supreme](http://glebbahmutov.com/blog/reduce-reigns-supreme/) 72 | * [Binding vs partial application](http://glebbahmutov.com/blog/binding-vs-partial-application/) 73 | * [Passing multiple arguments in promises](http://glebbahmutov.com/blog/passing-multiple-arguments-in-promises/) 74 | * [What is the difference between streams and functional reactive programming?](http://glebbahmutov.com/blog/what-is-the-difference-between-streams-and-functional-reactive-programming/) 75 | * [Remove boilerplate from promise chains](http://glebbahmutov.com/blog/remove-boilerplate-from-promise-chains/) 76 | * [Use JavaScript functor today](http://glebbahmutov.com/blog/use-javascript-functor-today/) 77 | * [Heavy lifting](http://glebbahmutov.com/blog/heavy-lifting/) 78 | * [Deep picking](http://glebbahmutov.com/blog/deep-picking/) 79 | * [Partial application for options object](http://glebbahmutov.com/blog/partial-application-for-options-object/) 80 | * [Unapply attack](http://glebbahmutov.com/blog/unapply-attack/) 81 | * [Return a promise for cleaner API](http://glebbahmutov.com/blog/return-a-promise-for-cleaner-api/) 82 | * [Imperative to compose example](http://glebbahmutov.com/blog/imperative-to-compose-example/) 83 | * [Variable assignment shortcut](http://glebbahmutov.com/blog/variable-assignment-shortcut/) 84 | * [Favoring Curry](http://fr.umio.us/favoring-curry) 85 | * [The Philosophy of Ramda](http://fr.umio.us/the-philosophy-of-ramda) 86 | * [Ranging Near and Far](http://fr.umio.us/ranging-near-and-far) 87 | * [Iffy Literals](http://fr.umio.us/iffy-literals) 88 | * [Why Ramda?](http://fr.umio.us/why-ramda) 89 | * [Say "Hello" to Lo-Dash](http://kitcambridge.be/blog/say-hello-to-lo-dash) 90 | * [Functional JavaScript using Lo-Dash, an underscore.js alternative](https://blog.codecentric.de/en/2013/01/functional-javascript-lo-dash-underscore-js-alternative) 91 | * [Currying in JavaScript](https://medium.com/@kevincennis/currying-in-javascript-c66080543528) 92 | * [Recursion in JavaScript](https://medium.com/@kevincennis/recursion-in-javascript-1608032c7a1f) 93 | * [How to Speed Up Lo-Dash ×100? Introducing Lazy Evaluation](http://filimanjaro.com/blog/2014/introducing-lazy-evaluation) 94 | * [ECMAScript 6 and Array Comprehension](http://ariya.ofilabs.com/2013/01/es6-and-array-comprehension.html) 95 | * [Implicit Function Chaining in Lodash](https://blog.mariusschulz.com/2015/05/14/implicit-function-chains-in-lodash) 96 | * [Lodash and ECMAScript 2015](https://blog.mariusschulz.com/2015/05/11/lodash-and-ecmascript-2015) 97 | * [Applicative Programming In JavaScript With lodash.js](http://codylindley.com/techpro/2013_10_14__functional-javascript) 98 | * [Better Support for Functional Programming in Angular 2](http://victorsavkin.com/post/108837493941/better-support-for-functional-programming-in) 99 | * [16 Months of Functional Programming](http://www.vasinov.com/blog/16-months-of-functional-programming) 100 | * [Functional UI and Components as Higher Order Functions](https://blog.risingstack.com/functional-ui-and-components-as-higher-order-functions) 101 | * [Functional programming with Ramda](https://medium.com/@kevinle/functional-programming-with-ramda-5c56d09c518e) 102 | * [Functional programming on frontend with React & ClojureScript](http://blog.scalac.io/2015/04/02/clojurescript-reactjs-reagent.html) 103 | * [Functional Programming should be your #1 priority for 2015](https://medium.com/@jugoncalves/functional-programming-should-be-your-1-priority-for-2015-47dd4641d6b9) 104 | * [Practical Functional Javascript with Ramda](http://developer.telerik.com/featured/practical-functional-javascript-ramda) 105 | * [Streaming Logs with Transducers and Ramda](http://simplectic.com/blog/2015/ramda-transducers-logs) 106 | * [The power of Immutability and React](https://medium.com/@sharifsbeat/the-power-of-immutability-and-react-daf46f2a5f4d) 107 | * [Tacit Ramda](https://medium.com/@bobiblazeski/tacit-ramda-c914775ff4b1) 108 | * [Composing Functions in JavaScript](http://blakeembrey.com/articles/2014/01/compose-functions-javascript) 109 | * [Partial Application in JavaScript](http://blakeembrey.com/articles/2014/01/partial-application-in-javascript/) 110 | * [Forcing Function Arity in JavaScript](http://blakeembrey.com/articles/2014/01/forcing-function-arity-in-javascript) 111 | * [Wrapping JavaScript Functions](http://blakeembrey.com/articles/2014/01/wrapping-javascript-functions) 112 | * [Partial Application in JavaScript](http://ejohn.org/blog/partial-functions-in-javascript) 113 | * [Functional JavaScript](http://blog.osteele.com/posts/2007/07/functional-javascript) 114 | * [Compiling to lambda-calculus: Turtles all the way down](http://matt.might.net/articles/compiling-up-to-lambda-calculus) 115 | * [Point-free programming style in F#](http://www.jayway.com/2012/05/08/point-free-programming-style-in-f) 116 | * [Lazy, composable, and modular JavaScript](https://codewords.recurse.com/issues/four/lazy-composable-and-modular-javascript) 117 | * [Partially Applied Functions In JavaScript](https://lostechies.com/derickbailey/2012/07/20/partially-applied-functions-in-javascript) 118 | * [Neural Networks, Types, and Functional Programming](http://colah.github.io/posts/2015-09-NN-Types-FP) 119 | * [Currying in JavaScript](https://medium.com/@kbrainwave/currying-in-javascript-ce6da2d324fe) 120 | * [Why Curry Helps](https://hughfdjackson.com/javascript/why-curry-helps) 121 | * [Factorial and Fibonacci in Kotlin](http://carlosqt.blogspot.com/2012/04/factorial-and-fibonacci-in-kotlin.html) 122 | * [Functional programming with Javascript](http://stephen-young.me.uk/2013/01/20/functional-programming-with-javascript.html) 123 | * [Элементы функциональных языков](http://fprog.ru/2009/issue3/eugene-kirpichov-elements-of-functional-languages) 124 | * [Functional Programming should be your #1 priority for 2015 — OOP cannot save us from the Cloud Monster anymore.](https://medium.com/@jugoncalves/functional-programming-should-be-your-1-priority-for-2015-47dd4641d6b9) 125 | * [A practical introduction to functional programming](http://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming) 126 | * [Functional programming in R language](http://adv-r.had.co.nz/Functional-programming.html) 127 | * [Category Theory in JavaScript](https://jscategory.wordpress.com) (must have) 128 | * [Understanding Continuations](https://www.fpcomplete.com/user/jwiegley/understanding-continuations) 129 | * [Tasks, microtasks, queues and schedules](https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules) 130 | * [Polyfilling generators](http://gu.illau.me/posts/polyfilling-generators) 131 | * [Fixed-point combinators in JavaScript: Memoizing recursive functions](http://matt.might.net/articles/implementation-of-recursive-fixed-point-y-combinator-in-javascript-for-memoization) 132 | * [Asynchronous programming and continuation-passing style in JavaScript](http://www.2ality.com/2012/06/continuation-passing-style.html) 133 | * [By example: Continuation-passing style in JavaScript](http://matt.might.net/articles/by-example-continuation-passing-style) 134 | * [The Y Combinator (Slight Return)](http://mvanier.livejournal.com/2897.html) 135 | * [Leaking Space - Eliminating memory hogs](https://queue.acm.org/detail.cfm?id=2538488) 136 | * [Breaking down FRP](https://blogs.janestreet.com/breaking-down-frp) 137 | * [What are some limitations/disadvantages of functional programming?](https://www.quora.com/What-are-some-limitations-disadvantages-of-functional-programming) 138 | * [Fun with promises in JavaScript](https://www.stephanboyer.com/post/107/fun-with-promises-in-javascript) 139 | * [Getting clever with lambda calculus](http://casualjavascript.com/2015/12/18/getting-clever-with-lambda.html) 140 | * [Servant, Type Families, and Type-level Everything A look at advanced GHC features used in Servant](http://www.arow.info/blog/posts/2015-07-10-servant-intro.html) 141 | * [Haskell-Style Fibonacci in Python](http://joelgrus.com/2015/07/07/haskell-style-fibonacci-in-python/) 142 | * [Polyglot Twitter Bot, Part 1: Node.js](http://joelgrus.com/2015/12/29/polyglot-twitter-bot-part-1-nodejs/) 143 | * [Polyglot Twitter Bot, Part 2: Node.js + AWS Lambda](http://joelgrus.com/2015/12/29/polyglot-twitter-bot-part-2-nodejs-aws-lambda/) 144 | * [Polyglot Twitter Bot, Part 3: Python 2.7 + AWS Lambda](http://joelgrus.com/2015/12/30/polyglot-twitter-bot-part-3-python-27-aws-lambda/) 145 | * [Functional programming with Ramda.js](http://neiro.io/2015/09/05/functional-programming-with-ramda-js.html) 146 | * [The Little Idea of Functional Programming](http://jaysoo.ca/2016/01/13/functional-programming-little-ideas) 147 | * [What is a functor?](https://medium.com/@dtinth/what-is-a-functor-dcf510b098b6#.zf6crffs6) 148 | * [What Is Functional Programming?](http://blog.jenkster.com/2015/12/what-is-functional-programming.html) 149 | * [Which Programming Languages Are Functional?](http://blog.jenkster.com/2015/12/which-programming-languages-are-functional.html) 150 | * [An Introduction to Functional Programming in JavaScript](https://bjpelc.wordpress.com/2015/02/06/an-introduction-to-functional-programming-in-javascript) 151 | * [Input and Output](http://learnyouahaskell.com/input-and-output) 152 | * [Function Application and Definition](http://slpopejoy.github.io/posts/2014-11-27-FunctionApplicationDefinition.html) 153 | * [Types & Kinds](http://slpopejoy.github.io/posts/2015-04-10-Types.html) 154 | * [Effectful Haskell: Reader, Transformers, Typeclasses](http://slpopejoy.github.io/posts/Effectful02.html) 155 | * [asynquence: The Promises You Don’t Know Yet (Part 1)](https://davidwalsh.name/asynquence-part-1) 156 | * [asynquence: More Than Just Promises (Part 2)](https://davidwalsh.name/asynquence-part-2) 157 | * [Going Async With ES6 Generators](https://davidwalsh.name/async-generators) 158 | * [Getting Concurrent With ES6 Generators](https://davidwalsh.name/concurrent-generators) 159 | * [Currying versus partial application (with JavaScript code)](http://www.2ality.com/2011/09/currying-vs-part-eval.html) 160 | * [Flatmap explained](https://porizi.wordpress.com/2014/02/21/flatmap-explained) 161 | * [Applicatives are generalized functors](https://hseeberger.wordpress.com/2011/01/31/applicatives-are-generalized-functors) 162 | * [Introduction to Category Theory in Scala](https://hseeberger.wordpress.com/category/category-theory) 163 | * [Understanding Transducers](http://elbenshira.com/blog/understanding-transducers) 164 | * [Understanding Transducers in JavaScript](https://medium.com/@roman01la/understanding-transducers-in-javascript-3500d3bd9624#.ze7jh4h2x) 165 | * [Visualizing Concurrency in Go](https://divan.github.io/posts/go_concurrency_visualize) 166 | * [Lazy Iterables in JavaScript](http://raganwald.com/2015/02/17/lazy-iteratables-in-javascript.html) 167 | * [Difference between a Promise and a Task](https://glebbahmutov.com/blog/difference-between-promise-and-task) 168 | * [Switching from immutable.js to seamless-immutable](http://tech.noredink.com/post/107617838018/switching-from-immutablejs-to-seamless-immutable) 169 | * [A Gentle Introduction to Functional JavaScript: Part 1](http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-intro) 170 | * [A Gentle Introduction to Functional JavaScript: Part 2](http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-arrays) 171 | * [A Gentle Introduction to Functional JavaScript: Part 3](http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-functions) 172 | * [A Gentle Introduction to Functional JavaScript: Part 4](http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-style) 173 | * [From mathematics to map-reduce](http://www.haskellforall.com/2016/02/from-mathematics-to-map-reduce.html) 174 | * [Continuations](https://curiosity-driven.org/continuations) 175 | * [Elmish: Functional Programming in Javascript](https://medium.com/@chetcorcos/elmish-functional-programming-in-javascript-50995f1d4b9e#.gxfuglcw8) 176 | * [Functional Programming for JavaScript People](https://medium.com/@chetcorcos/functional-programming-for-javascript-people-1915d8775504#.65dy1pg1i) 177 | * [Coroutine Event Loops in Javascript](https://x.st/javascript-coroutines) 178 | * [How Do I Learn Functional Programming In Javascript? - Linkpost](http://www.fse.guru/how-do-i-learn-functional-programming-in-javascript-linkpost) 179 | * [Debugging Functional](https://medium.com/@drboolean/debugging-functional-7deb4688a08c#.bbrftrszz) 180 | * [Why using `_.chain` is a mistake](https://medium.com/making-internets/why-using-chain-is-a-mistake-9bc1f80d51ba#.hq00cmdrw) 181 | * [More points for lazy evaluation](http://augustss.blogspot.com/2011/05/more-points-for-lazy-evaluation-in.html) 182 | * [Trampolines in JavaScript](http://raganwald.com/2013/03/28/trampolines-in-javascript.html) 183 | * [Where combinator names come from](http://www.johndcook.com/blog/2014/02/06/schonfinkel-combinators/) 184 | * [Category Theory for Promises/A+](https://brianmckenna.org/blog/category_theory_promisesaplus) 185 | * [Everything Reduced: Transducers in Javascript](https://medium.com/@dtipson/everything-reduced-transducers-in-javascript-8ea3459bc7f9#.8udfq9qgc) 186 | * [Javascript Transducers 2: Stateful & Gateful](https://medium.com/@dtipson/javascript-transducers-2-stateful-gateful-1faa1b01ae50#.tpd0umbp2) 187 | * [Creating an ES6ish Compose in Javascript](https://medium.com/@dtipson/creating-an-es6ish-compose-in-javascript-ac580b95104a#.iiyge32r2) 188 | * [More Functional Javascript: Reducing Promises, Ramda.js, & Arrow functions again](https://medium.com/@dtipson/more-functional-javascript-reducing-promises-ramda-js-arrow-functions-again-c1f90e0a79d0#.iazm515xv) 189 | * [Functional Programming is for Dummies](https://medium.com/@dtipson/functional-programming-is-for-dummies-fa130a629250#.3eb04lfbp) 190 | * [Functional Programming Principles in Scala](http://vasnake.blogspot.com/2016/03/functional-programming-principles-in.html) 191 | * [Introduction to Immutable.js and Functional Programming Concepts](https://auth0.com/blog/2016/03/23/intro-to-immutable-js/) 192 | * [Functional Programming in JavaScript - The Functional Paradigm in a Familiar Language](https://dzone.com/refcardz/functional-programming-with-javascript) 193 | * [Using Lodash as a Collection of Micro-Libraries](http://knpw.rs/blog/using-lodash) 194 | * [See How Easily You Can Create a Promise](https://o2js.com/see-how-easily-you-can-create-a-promise) 195 | * [Achieving point-free JavaScript with R.converge / _.over](https://medium.com/@nicoespeon/achieving-point-free-javascript-with-r-converge-overargs-94060fd0ed7a#.xi63eq605) 196 | * [Introduction to Functional JavaScript](https://medium.com/functional-javascript/introduction-to-functional-javascript-45a9dca6c64a#.pofkvcd7z) 197 | * [Functions](https://medium.com/functional-javascript/functions-61b9096b5638#.6ntr05g4z) 198 | * [Higher Order Functions](https://medium.com/functional-javascript/higher-order-functions-78084829fff4#.inii2wlzh) 199 | * [Recursion](https://medium.com/functional-javascript/recursion-282a6abbf3c5#.4x0h9awy7) 200 | * [3. More Functional Swift](https://medium.com/swift-programming/3-more-functional-swift-4bb7256c087d#.odesvmw2c) 201 | * [2. Functional Swift](https://medium.com/swift-programming/2-functional-swift-c98be9533183#.ze1gph6zi) 202 | * [Swift closures and functions](http://fuckingswiftblocksyntax.com/) 203 | * [Debouncing and Throttling Explained Through Examples](https://css-tricks.com/debouncing-throttling-explained-examples/) 204 | * [Foldable and Traversable](http://blog.jakubarnold.cz/2014/07/30/foldable-and-traversable.html) 205 | * [How do Promises Work?](http://robotlolita.me/2015/11/15/how-do-promises-work.html) 206 | * [Javascript generators and functional reactive programming](http://sitr.us/2014/08/02/javascript-generators-and-functional-reactive-programming.html)\ 207 | * [No promises: asynchronous JavaScript with only generators](http://www.2ality.com/2015/03/no-promises.html) 208 | * [Functional Mixins in ECMAScript 2015](http://raganwald.com/2015/06/17/functional-mixins.html) 209 | * [CSP and transducers in JavaScript](http://phuu.net/2014/08/31/csp-and-transducers.html) 210 | * [ES6 generators in depth](http://www.2ality.com/2015/03/es6-generators.html) 211 | * [Functional Programming for JavaScript People](https://medium.com/@chetcorcos/functional-programming-for-javascript-people-1915d8775504#.teglaxq5d) 212 | * [The allure of Scala.js](http://blog.ramnivas.com/technology/2016/02/09/the-allure-of-scalajs.html) 213 | * [Swift Guide to Map Filter Reduce](http://useyourloaf.com/blog/swift-guide-to-map-filter-reduce/) 214 | * [6 Reasons Why You Should Write Functional Code](http://funkyjavascript.com/6-reasons-why-you-should-write-functional-code/) 215 | * [The Perfect API](http://james-forbes.com/?/posts/the-perfect-api) 216 | * [(Basic) Lazy Evaluation and Memoization in JavaScript](http://blog.gypsydave5.com/2015/03/21/lazy-eval-and-memo/) 217 | * [Divide and Conquer with Algebraic Structures](https://medium.com/@drboolean/divide-and-conquer-with-algebraic-structures-14070106fb4#.ae1a9xf08) 218 | * [Async and await](https://zeit.co/blog/async-and-await) 219 | * [Applicative functors: definition and syntax](http://tomasp.net/blog/applicative-functors.aspx/) 220 | * [Proofs of functor laws in Haskell](http://ssomayyajula.github.io/posts/2015-11-07-proofs-of-functor-laws-with-Haskell.html) 221 | * [The functor design pattern](http://www.haskellforall.com/2012/09/the-functor-design-pattern.html) 222 | * [A 𝝺-CALCULUS INTERPRETER - in less than 200 lines of JavaScript](http://tadeuzagallo.com/blog/writing-a-lambda-calculus-interpreter-in-javascript/) 223 | * [Tree traversal in CoffeeScript](https://alisdair.mcdiarmid.org/tree-traversal-in-coffeescript/) 224 | * [Monoidal Contravariant Functors are actually useful!](https://medium.com/@drboolean/monoidal-contravariant-functors-are-actually-useful-1032211045c4#.pmf31o9gd) 225 | * [Infinite collections with ES6 generators](https://advancedweb.hu/2016/05/31/infinite-collections-with-es6-generators/) 226 | * [Improving your functional CoffeeScript and JavaScript](https://www.jayway.com/2013/12/22/improving-your-functional-coffeescript-and-javascript/) 227 | * [Comparing Javascript generators vs Clojurescript lazy-seq by solving a Fibonnaci problem](https://medium.com/@rlucha/comparing-javascript-generators-vs-clojurescript-lazy-seq-by-solving-a-fibonnaci-problem-61c1524d67d6#.swxk99bgd) 228 | * [Grasping Haskell: functors, applicatives and monads (part 1)](https://medium.com/@xanderdeseyn/grasping-haskell-functors-applicatives-and-monads-part-1-93368e0a7a74#.692ooxhnz) 229 | * [Grasping Haskell: functors, applicatives and monads (part 2)](https://medium.com/@xanderdeseyn/grasping-haskell-functors-applicatives-and-monads-part-2-65255e3e6a1d#.xigtg4wma) 230 | * [Functor, Foldable, and Traversable Over Binary Tree](https://queertypes.com/posts/37-functor-traverse-fold-tree.html) 231 | * [Functional Components with React stateless functions and Ramda](https://medium.com/@mirkomariani/functional-components-with-react-stateless-functions-and-ramda-e83e54fcd86b#.tr2jf6dv6) 232 | * [Support for deriving Functor, Foldable, and Traversable instances](https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/DeriveFunctor) 233 | * [Fold (higher-order function)](https://en.wikipedia.org/wiki/Fold_(higher-order_function)) 234 | * [Making a Haskell (Scotty) web app and putting it on Heroku](http://qiita.com/kimagure/items/5947e2db40b9ec2226bf) 235 | * [Promises + FP = Beautiful Streams](https://medium.com/@yelouafi/promises-fp-beautiful-streams-6f0235c5b179#.fl8mmu2xs) 236 | * [Composability: from Callbacks to Categories in ES6](https://medium.com/@homam/composability-from-callbacks-to-categories-in-es6-f3d91e62451e#.x3q3q9pzl) 237 | * [Understanding F-Algebras](https://www.schoolofhaskell.com/user/bartosz/understanding-algebras) 238 | * [Fold](https://wiki.haskell.org/Fold) 239 | * [Why Functional Programming Matters](https://blog.acolyer.org/2016/09/14/why-functional-programming-matters/) 240 | * [Smarter validation](https://ro-che.info/articles/2015-05-02-smarter-validation) 241 | * [The Algebra of Algebraic Data Types, Part 1](http://chris-taylor.github.io/blog/2013/02/10/the-algebra-of-algebraic-data-types/) 242 | * [The Algebra of Algebraic Data Types, Part 2](http://chris-taylor.github.io/blog/2013/02/11/the-algebra-of-algebraic-data-types-part-ii/) 243 | * [The Algebra of Algebraic Data Types, Part 3](http://chris-taylor.github.io/blog/2013/02/13/the-algebra-of-algebraic-data-types-part-iii/) 244 | * [Async in Purescript is fun and easy](http://qiita.com/kimagure/items/2ebce1399bac00c79656) 245 | * [Design Patterns in Haskell](http://blog.ezyang.com/2010/05/design-patterns-in-haskel/) 246 | * [So You Want to be a Functional Programmer Series by Charles Scalfani](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536#.cxfubzoqh) 247 | * [Haskell Progressive Example - An OpenGL 3D extension of the Mandelbrot set](http://yannesposito.com/Scratch/en/blog/Haskell-OpenGL-Mandelbrot/) 248 | * [Folds and Infinite Lists](http://argumatronic.com/posts/2016-09-17-infinite-folds.html) 249 | * [list-transformer - A beginner-friendly ListT](http://www.haskellforall.com/2016/07/list-transformer-beginner-friendly-listt.html) 250 | * [Sharing, Space Leaks, and Conduit and friends](http://www.well-typed.com/blog/2016/09/sharing-conduit/) 251 | * [Functors are Containers](https://bartoszmilewski.com/2014/01/14/functors-are-containers/) 252 | * [Tuples in JavaScript](http://oli.me.uk/2013/07/12/tuples-in-javascript/) 253 | * [Making juice with reduce/foldl](http://www.macwright.org/2015/01/03/reduce-juice.html) 254 | * [Getting audio from Youtube channels in the easiest way possible using Haskell](http://qiita.com/kimagure/items/0a2f3d60789c646e4426) 255 | * [From Callback to Future -> Functor -> Monad](https://hackernoon.com/from-callback-to-future-functor-monad-6c86d9c16cb5) 256 | * [Slaying a UI Antipattern in Fantasyland](https://medium.com/javascript-inside/slaying-a-ui-antipattern-in-fantasyland-907cbc322d2a#.rmepdr82j) 257 | * [Form Validation As A Higher Order Component Pt.1](https://medium.com/javascript-inside/form-validation-as-a-higher-order-component-pt-1-83ac8fd6c1f0#.u2pkcyfb6) 258 | * [Form Validation As A Higher Order Component Pt.2](https://medium.com/javascript-inside/form-validation-as-a-higher-order-component-pt-2-1edb7881870d#.ldwpp7qgl) 259 | * [Using JavaScript to Learn Haskell](https://medium.com/@sjsyrek/using-javascript-to-learn-haskell-f57509015842#.g5kbyrz77) 260 | * [FFI with Haskell and Rust](https://mgattozzi.github.io/2016/10/01/haskell-rust.html) 261 | * [A Taste of Haskell](https://hookrace.net/blog/a-taste-of-haskell/) 262 | * [BEAUTIFUL FOLDS IN SCALA](https://softwaremill.com/beautiful-folds-in-scala/) 263 | * [Functional Programming In JS — With Practical Examples (Part 1)](https://medium.com/@rajaraodv/functional-programming-in-js-with-practical-examples-part-1-87c2b0dbc276#.y01dinh7e) 264 | * [Immutable.js: The True Joy of JavaScript](http://blog.sigmapoint.pl/immutable-js-the-true-joy-of-javascript/) 265 | * [Mutual Recursion in Final Encoding](https://aherrmann.github.io/programming/2016/05/28/mutual-recursion-in-final-encoding/) 266 | * [Semigroups](https://medium.com/@gcanti/semigroups-f74f7643c0d4#.okttdogyg) 267 | * [Using F# on both the frontend and the backend](http://danielbachler.de/2016/12/10/f-sharp-on-the-frontend-and-the-backend.html) 268 | * [Stack safe Function composition](https://medium.com/@safareli/stack-safe-function-composition-85d61feee37e#.fige7eu8l) 269 | * [Applicative functors: definition and syntax](http://tomasp.net/blog/applicative-functors.aspx/) 270 | * [The versatility of Array methods](https://james-forbes.com/index.html?/posts/versatility-of-array-methods) 271 | * [Functional Programming in JavaScript](http://dealwithjs.io/functional-programming-in-javascript/) 272 | * [Abstracting Computations with Type Classes](https://freecontent.manning.com/abstracting-computations-with-type-classes/) 273 | 274 | ### [Lenses]() 275 | 276 | * [Lenses In Pictures](http://adit.io/posts/2013-07-22-lenses-in-pictures.html) 277 | * [Lenses and Virtual DOM Support Open Closed](http://joneshf.github.io/programming/2015/12/19/Lenses-and-Virtual-DOM-Support-Open-Closed.html) 278 | * [JavaScript through the Lenses of Functional Programming](https://web.archive.org/web/20160802064916/http://www.luisatencio.net/2015/09/javascript-through-lenses-of-functional.html) 279 | * [How functional programming lenses work](http://fluffynukeit.com/how-functional-programming-lenses-work) 280 | * [Basic Lensing](https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/basic-lensing) 281 | * [Lenses with Immutable.js](https://medium.com/@drboolean/lenses-with-immutable-js-9bda85674780#.hwrcbhxyu) 282 | * [Использование линз на реальных примерах](http://blog.csssr.ru/2016/07/08/lenses/) 283 | * [lens over tea #1: lenses 101, traversals 101, and some implementation details](https://artyom.me/lens-over-tea-1) 284 | * [Functional Lenses, How Do They Work](https://medium.com/@dtipson/functional-lenses-d1aba9e52254#.6hlng669r) 285 | * [An Introduction Into Lenses In JavaScript Functional Getter/Setter](https://medium.com/javascript-inside/an-introduction-into-lenses-in-javascript-e494948d1ea5#.ck7t1syp0) 286 | * [Pointwise Lenses](https://www.well-typed.com/blog/2014/04/pointwise-lenses/) 287 | * [Линзы: Real World](https://ruhaskell.org/posts/packages/2015/01/28/lenses-real-world.html) 288 | * [Haskell Lenses Notes](https://rafal.io/posts/haskell-lenses-notes.html) 289 | * [Isomorphism lenses](http://www.twanvl.nl/blog/haskell/isomorphism-lenses) 290 | * [An Intro to Lens With No Theory](https://abesto.net/an-intro-to-lens-with-no-theory/) 291 | * [Lens you an applicative for great haskell?](https://izbicki.me/blog/lens-you-an-applicative-for-great-haskell.html) 292 | * [I got lenses in my Functors](https://izbicki.me/blog/i-got-lenses-in-my-functors) 293 | * [A Little Lens Starter Tutorial](https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/a-little-lens-starter-tutorial) 294 | * [Introduction to optics: lenses and prisms](https://medium.com/@gcanti/introduction-to-optics-lenses-and-prisms-3230e73bfcfe#.nnp002k5j) 295 | * [Lens Tutorial - Introduction (part 1)](http://blog.jakubarnold.cz/2014/07/14/lens-tutorial-introduction-part-1.html) 296 | * [Lens Tutorial - Stab & Traversal (Part 2)](http://blog.jakubarnold.cz/2014/08/06/lens-tutorial-stab-traversal-part-2.html) 297 | 298 | ### [Monads](https://en.wikipedia.org/wiki/Monad_(functional_programming)) 299 | 300 | * [Monads: Your App as a Function, Part 1](http://mttkay.github.io/blog/2014/01/25/your-app-as-a-function) 301 | * [Monads: Your App as a Function, Part 2](https://mttkay.github.io/blog/2014/01/25/monads-your-app-as-a-function-part-2) 302 | * [The Marvels of Monads](http://blogs.msdn.com/b/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx) 303 | * [A Fistful of Monads](http://learnyouahaskell.com/a-fistful-of-monads) 304 | * [Category Theory via C# (22) More Monad: Continuation Monad](http://weblogs.asp.net/dixin/category-theory-via-c-sharp-22-more-monad-continuation-monad) 305 | * [The Mother of all Monads](http://blog.sigfpe.com/2008/12/mother-of-all-monads.html) 306 | * [Understanding Monads With JavaScript](http://igstan.ro/posts/2011-05-02-understanding-monads-with-javascript.html) 307 | * [Promises are the monad of asynchronous programming](https://blog.jcoglan.com/2011/03/11/promises-are-the-monad-of-asynchronous-programming) 308 | * [A Monad in Practicality: First-Class Failures](http://robotlolita.me/2013/12/08/a-monad-in-practicality-first-class-failures.html) 309 | * [A Monad in Practicality: Controlling Time](http://robotlolita.me/2014/03/20/a-monad-in-practicality-controlling-time.html) 310 | * [Monads in JavaScript](https://curiosity-driven.org/monads-in-javascript) 311 | * [Mindfuck: The Reverse State Monad](https://lukepalmer.wordpress.com/2008/08/10/mindfuck-the-reverse-state-monad) 312 | * [Comonads, Monoids and Trees](http://joneshf.github.io/programming/2015/12/31/Comonads-Monoids-and-Trees.html) (awesome article) 313 | * [The Delimited Continuation Monad in Javascript](http://blog.mattbierner.com/the-delimited-continuation-monad-in-javascript) 314 | * [Free Monads Are Simple](http://underscore.io/blog/posts/2015/04/14/free-monads-are-simple.html) 315 | * [Effectful Haskell: IO, Monads, Functors](http://slpopejoy.github.io/posts/Effectful01.html) 316 | * [Functors, Applicative Functors, and Monads aren't that scary](http://gabrielsw.blogspot.com/2011/08/functors-applicative-functors-and.html) 317 | * [Functors, Monads, Applicatives – can be so simple](https://thedet.wordpress.com/2012/04/28/functors-monads-applicatives-can-be-so-simple) 318 | * [Practical Intro to Monads in JavaScript](http://tech.evojam.com/2016/02/22/practical-intro-to-monads-in-javascript) 319 | * [The Indexed State Monad in Haskell, Scala, and C#](https://gist.github.com/pthariensflame/5054294) 320 | * [Who in Their Right Mind Would Use Monads in Clojure?](http://blog.muhuk.com/2015/10/01/who_in_their_right_mind_would_use_monads_in_clojure.html#.VuvdlJN97PB) 321 | * [Let’s Make a Monad](https://medium.com/@dtipson/hey-let-s-make-a-monad-e276802fdb0c#.2wbev1dme) 322 | * [Let’s Put jQuery in a Monad](https://medium.com/@dtipson/let-s-make-jquery-a-monad-7df0e79a842d#.bq9lz9fm7) 323 | * [Monads in C++](http://bartoszmilewski.com/2011/07/11/monads-in-c/) 324 | * [Monads in plain JavaScript](http://modernjavascript.blogspot.com/2013/06/monads-in-plain-javascript.html) 325 | * [Practical Intro to Monads in JavaScript: Either](https://tech.evojam.com/2016/03/21/practical-intro-to-monads-in-javascript-either) 326 | * [Practical Intro to Monads in JavaScript: Validation](https://tech.evojam.com/2016/04/26/practical-intro-to-monads-in-javascript-validation/) 327 | * [Practical Intro to Monads in JavaScript](https://tech.evojam.com/2016/02/22/practical-intro-to-monads-in-javascript/) 328 | * [Monads, promises, arrays in Javascript](http://pseudocorta.blogspot.com/2014/05/monads-promises-arrays-in-javascript.html) 329 | * [Monad syntax for JavaScript](https://blog.jcoglan.com/2011/03/06/monad-syntax-for-javascript) 330 | * [Translation from Haskell to JavaScript of selected portions of the best introduction to monads I’ve ever read](https://blog.jcoglan.com/2011/03/05/translation-from-haskell-to-javascript-of-selected-portions-of-the-best-introduction-to-monads-ive-ever-read) 331 | * [Monads](http://functionaljavascript.blogspot.com/2013/07/monads.html) 332 | * [A Gentle Intro to Monads … Maybe?](http://sean.voisen.org/blog/2013/10/intro-monads-maybe) 333 | * [Monads - function composition on steroids](http://pkaczor.blogspot.com/2013/09/monads-function-composition-on-steroids.html) 334 | * [Rx for Haskell - My First Monad](http://haskellrescue.blogspot.com/2011/06/rx-for-haskell-my-first-monad.html) 335 | * [Monads for Dummies](http://jabberwocky.eu/2012/11/02/monads-for-dummies/) 336 | * [Week 3 - Introduction to Monads in JavaScript](http://www.aaronhsmith.com/2015/09/08/introduction-monads-javascript/) 337 | * [Монады в Javascript](http://kolesnichenkods.github.io/2015/08/01/%D0%9C%D0%BE%D0%BD%D0%B0%D0%B4%D1%8B-%D0%B2-JavaScript/) 338 | * [Аналоги монад Haskell](http://www.linux.org.ru/forum/development/7730147) 339 | * [Functors, Applicatives, and Monads in Plain English](http://www.russbishop.net/monoids-monads-and-functors) 340 | * [what does “lifting” mean?](http://cstheory.stackexchange.com/questions/14125/what-does-lifting-mean/14126#14126) 341 | * [Free and Freer Monads: Putting Monads Back into Closet](http://okmij.org/ftp/Computation/free-monad.html) 342 | * [Akh - Monad Transformers for Javascript](http://blog.mattbierner.com/akh-monad-transformers-for-javascript/) 343 | * [Decision Trees Are Free Monads Over the Reader Functor](http://clathomasprime.github.io/hask/freeDecision) 344 | * [Собираемся с духом и перестаем бояться монад](http://eax.me/monads/) 345 | * [Утилиты работы с монадами](http://www.haskell.ru/monad.html) 346 | * [Ru/IO Inside](https://wiki.haskell.org/Ru/IO_Inside) 347 | * [Foldable.mapM_, Maybe, and recursive functions](https://www.schoolofhaskell.com/user/snoyberg/general-haskell/basics/foldable-mapm-maybe-and-recursive-functions#mono-traversable) 348 | * [Of Algebirds, Monoids, Monads, and Other Bestiary for Large-Scale Data Analytics](http://www.michael-noll.com/blog/2013/12/02/twitter-algebird-monoid-monad-for-large-scala-data-analytics/#the-tldr-version-of-monoids-and-monads) 349 | * [Comonads as Spaces](http://blog.functorial.com/posts/2016-08-07-Comonads-As-Spaces.html) 350 | * [MonadFix](https://wiki.haskell.org/MonadFix) 351 | * [Monads - Array, Promise and Maybe monads. Plus Docker is a functor](https://glebbahmutov.com/blog/monads/) 352 | * [The Marvellously Mysterious JavaScript Maybe Monad](http://jrsinclair.com/articles/2016/marvellously-mysterious-javascript-maybe-monad/) 353 | * [The midnight Monad, a journey to enlightenment](http://www.lambdacat.com/the-midnight-monad-a-journey-to-enlightenment/) 354 | * [Monads in Haskell: ((->) r)](http://www.mjoldfield.com/atelier/2014/07/monads-fn.html) 355 | * [Monoids, Functors, Applicatives, and Monads: 10 Main Ideas](https://monadmadness.wordpress.com/2015/01/02/monoids-functors-applicatives-and-monads-10-main-ideas/) 356 | * [Kleisli Functors](http://elvishjerricco.github.io/2016/10/12/kleisli-functors.html) 357 | * [The Dead Simple, No Chit Chat, Zero-Analogy Haskell Monad Tutorial](https://unknownparallel.wordpress.com/zero-analogy-monad-tutorial/) 358 | * [Monads Demystified](http://blog.reverberate.org/2015/08/monads-demystified.html) 359 | * [Understanding Monads](https://medium.com/real-world-fsharp/understanding-monads-db30eeadf2bf#.dtr6wmvyc) 360 | * [Functors, Applicatives, And Monads In Pictures](http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html) 361 | * [Monads as Practical Functionality Providers](https://freecontent.manning.com/monads-as-practical-functionality-providers/) 362 | 363 | ### [Purescript](http://www.purescript.org) 364 | 365 | * [Building Apps with PureScript and React](https://kritzcreek.github.io/tutorial/2015/03/31/apps-with-purescript-and-react-1) 366 | * [Frontend Functional Programming with PureScript and Elm](http://blog.thomasstreet.com/post/129725260288/frontend-functional-programming-with-purescript) 367 | * [Writing PureScript Bindings for a jQuery Plugin](https://filib.io/posts/2015-11-06-writing-purescript-bindings-for-a-jquery-plugin.html) 368 | * [PureScript on Android](http://blog.ndk.io/purescript-on-android.html) 369 | * [Rendering a Tic-Tac-Toe board with purescript-react](https://kritzcreek.github.io/example/2015/10/03/tic-tac-toe-with-purescript) 370 | * [Playing Tic-Tac-Toe using purescript-signal](https://kritzcreek.github.io/tutorial/2015/10/07/playing-tic-tac-toe-with-purescript-signal) 371 | * [Fighting node callback hell with PureScript](https://andreypopp.com/posts/2014-07-21-fighting-node-callbacks-with-purescript.html) 372 | * [Approximating PI With PureScript](http://sleepomeno.github.io/blog/2015/03/14/Approximating-PI-with-PureScript/) 373 | * [Learn X in Y minutes - Where X=purescript](https://learnxinyminutes.com/docs/purescript/) 374 | * [PureScript for the Haskeller Where to get started in PureScript for the Haskell programmer](http://www.arow.info/blog/posts/2015-12-17-purescript-intro.html) 375 | * [Polyglot Twitter Bot, Part 4: PureScript](http://joelgrus.com/2015/12/31/polyglot-twitter-bot-part-4-purescript/) 376 | * [WebApps with PureScript and RactiveJS](http://blog.brakmic.com/webapps-with-purescript-and-ractivejs) 377 | * [Managing Application State with PureScript & Redux](http://blog.brakmic.com/managing-application-state-with-purescript-redux) 378 | * [PureScript with Leaflet Experiments](http://odoe.net/blog/purescript-with-leaflet-experiments) 379 | * [Purescript will make you purr like a kitten](http://blog.sigmapoint.pl/purescript-will-make-you-purr-like-a-kitten) 380 | * [PureScript + React + Electron](http://alexey.raga.name/posts/2015/09/28/purescript-react-electron) 381 | * [Getting started in PureScript (Part 1)](https://pierrebeaucamp.surge.sh/post/Getting%20started%20in%20PureScript%20(Part%201)) 382 | * [Getting Started with Purescript for Web Development](http://curtis.io/purescript-for-web-development) 383 | * [PureScript for Front End Developers](http://konkle.us/purescript-for-front-end-developers/) 384 | * [A Real-World PureScript FE Build Setup](http://konkle.us/a-real-world-purescript-build-setup/) 385 | * [Making a simple node program with Purescript](http://qiita.com/kimagure/items/5674e3ae9c87262af762) 386 | * [PureScript — An Intro for JavaScript Hackers](https://medium.com/@dum.constantin/purescript-an-intro-for-javascript-hackers-605442e963a3#.h6b0uufdg) 387 | * [Parsing complex foreign objects in PureScript](http://codingstruggles.com/purescript/purescript-parsing-complex-foreign-objects.html) 388 | * [Writing a simple Telegram chat bot in Purescript](http://qiita.com/kimagure/items/2da0fe86b218b3f832d0) 389 | * [Making a Weather Telegram bot in Purescript](http://futurice.com/blog/making-a-weather-telegram-bot-in-purescript) 390 | * [Row span with PureScript pux and JavaScript redux](http://www.andrevdm.com/posts/2016-09-01-rowSpan-pux-redux.html) 391 | * [Make the Leap from JavaScript to PureScript](https://hackernoon.com/make-the-leap-from-javascript-to-purescript-5b35b1c06fef) 392 | 393 | ### [Elm](http://elm-lang.org) 394 | 395 | * [Building a Live-Validated Signup Form in Elm](http://tech.noredink.com/post/129641182738/building-a-live-validated-signup-form-in-elm) 396 | * [Data Structures in Elm](http://tech.noredink.com/post/140646140878/data-structures-in-elm) 397 | * [Walkthrough: Introducing Elm to a JS Web App](http://tech.noredink.com/post/126978281075/walkthrough-introducing-elm-to-a-js-web-app) 398 | * [Static site generation in Elm](http://tech.noredink.com/post/140291903568/static-site-generation-in-elm) 399 | * [Архитектура приложения в Elm](http://ruhaskell.org/posts/elm/2015/03/06/elm-architecture.html) 400 | * [Начало проекта на Elm](http://ruhaskell.org/posts/elm/2015/01/22/elm-hello.html) 401 | * [Optimistic UI and Reactive Programming with Elm](http://athiemann.net/2015/07/26/optimistic-ui-elm.html) 402 | * [Understanding Signal.forwardTo](http://zkessin.github.io/elm-examples-blog//examples/2016/01/07/understanding-Signal.forwardTo.html) 403 | * [Learning FP the hard way: Experiences on the Elm language](https://gist.github.com/ohanhi/0d3d83cf3f0d7bbea9db) 404 | * [Architecture in Elm](https://gist.github.com/evancz/2b2ba366cae1887fe621) 405 | * [Switching from imperative to functional programming with games in Elm](https://github.com/Dobiasd/articles/blob/master/switching_from_imperative_to_functional_programming_with_games_in_Elm.md) 406 | * [How Elm made our work better](http://futurice.com/blog/elm-in-the-real-world) 407 | * [Elm for the Frontend, Right Now](https://bendyworks.com/elm-frontend-right-now) 408 | * [Introduction to ML in Elm](https://www.classes.cs.uchicago.edu/archive/2015/winter/22300-1/lectures/IntroML.html) 409 | * [Making a scroll table with Elm](http://qiita.com/kimagure/items/57cdd08bdf56cc51d294) 410 | * [A simple introduction to using Elm ports](http://qiita.com/kimagure/items/f15bff4f33a63ba03877) 411 | * [How I wrote a hybrid Elm/Javascript Node.js application](http://qiita.com/kimagure/items/da2100328aa94a736559) 412 | * [Getting Started with Elm](https://medium.com/@diamondgfx/getting-started-with-elm-11d7a53b1a78#.xbf1ghjft) 413 | * [Understanding Elm: Signals, Mailboxes, Addresses, and Actions](https://medium.com/@diamondgfx/understanding-elm-signals-mailboxes-addresses-and-actions-7932781396ef#.tq036zcnr) 414 | * [Using Mailboxes in Elm](https://gist.github.com/mgold/461dbf37d4d34767e5da) 415 | * [Developing Games In Elm - Signals](http://gelatindesign.co.uk/developing-games-in-elm/signals) 416 | * [Signals in Elm](http://danielbachler.de/2016/02/12/signals-in-elm.html) 417 | * [Elm by Example: Soup to Nuts - Part 1](https://hashrocket.com/blog/posts/elm-by-example-soup-to-nuts-part-1) 418 | * [An Opening Example of Elm: building HTML by parsing parameters](http://blog.jessitron.com/2015/08/an-elm-example-reading-url-parameters.html) 419 | * [Real World Elm - Part 2 - Form Validation](http://engineering.truqu.com/2015/09/25/real-world-elm-part-2.html) 420 | * [Real World Elm - Part 1](http://engineering.truqu.com/2015/08/19/real-world-elm-part-1.html) 421 | * [Deconstructing Your First Elm App](https://yobriefca.se/blog/2015/08/02/deconstructing-your-first-elm-app) 422 | * [Introduction to FRP in Elm](https://www.classes.cs.uchicago.edu/archive/2015/winter/22300-1/lectures/IntroFRP.html) 423 | * [Tasks and Effects in Elm](http://danielbachler.de/2016/02/19/tasks-and-effects-in-elm.html) 424 | * [Elm Native UI: Writing a React Native app in Elm](http://ohanhi.github.io/elm-native-ui.html) 425 | * [Learn X in Y minutes - Where X=Elm](https://learnxinyminutes.com/docs/elm) 426 | * [A Concise Introduction to Elm](https://www.cis.upenn.edu/~matuszek/Concise%20Guides/Concise%20Elm.html) 427 | * [Elm by Example: Soup to Nuts - Part 1](https://hashrocket.com/blog/posts/elm-by-example-soup-to-nuts-part-1) 428 | * [Structured TodoMVC example with Elm](https://medium.com/@_rchaves_/structured-todomvc-example-with-elm-a68d87cd38da#.srxm7txdt) 429 | * [10 reasons why you should give Elm a try](https://medium.com/@tibastral/10-reasons-why-you-should-give-elm-a-try-62b56d305643#.np2phq2v9) 430 | * [Why Elm is Going to Change the World](https://medium.com/@dailydrip/why-elm-is-going-to-change-the-world-f5a6c693b2ca#.8hcwvohtp) 431 | * [Building A React/Redux/Elm Bridge](https://medium.com/javascript-inside/building-a-react-redux-elm-bridge-8f5b875a9b76#.h6rmwevj4) 432 | * [Elm for the Frontend, Right Now (Updated for Elm 0.18)](http://bendyworks.com/blog/elm-frontend-right-now-updated-for-0-18) 433 | 434 | --- 435 | 436 | ## Awesome 437 | 438 | * [Awesome Haskell - A curated list of awesome Haskell frameworks, libraries and software](https://github.com/uhub/awesome-haskell) 439 | * [Awesome Elm - A curated list of useful Elm tutorials, libraries and software. Inspired by awesome list](https://github.com/isRuslan/awesome-elm) 440 | * [Awesome F# - A curated list of awesome F# frameworks, libraries, software and resources](https://github.com/fsprojects/awesome-fsharp) 441 | * [Awesome Scala - A community driven list of useful Scala libraries, frameworks and software](https://github.com/lauris/awesome-scala) 442 | * [Awesome Haskell - A collection of awesome Haskell links, frameworks, libraries and software. Inspired by awesome projects line](https://github.com/krispo/awesome-haskell) 443 | * [Awesome PureScript - A curation of awesome PureScript libraries, resources and shiny things](https://github.com/passy/awesome-purescript) 444 | * [Awesome Functional Python - A curated list of awesome things related to functional programming in Python](https://github.com/sfermigier/awesome-functional-python) 445 | * [Awesome Coq - A curated list of awesome Coq frameworks, libraries and software](https://github.com/uhub/awesome-coq) 446 | * [Awesome Elixir - A curated list of amazingly awesome Elixir and Erlang libraries, resources and shiny things](https://github.com/h4cc/awesome-elixir) 447 | * [Awesome Clojure - A curated list of awesome Clojure libraries and resources](https://github.com/razum2um/awesome-clojure) 448 | 449 | ___ 450 | 451 | ## Books 452 | 453 | * [Functional Reactive Programming](https://www.manning.com/books/functional-reactive-programming) 454 | * [Functional Programming in Java](https://www.manning.com/books/functional-programming-in-java) 455 | * [Functional Programming in C++](https://www.manning.com/books/functional-programming-in-cplusplus) 456 | * [Functional Programming in C#](https://www.manning.com/books/functional-programming-in-c-sharp) 457 | * [Functional Programming in Kotlin](https://www.manning.com/books/functional-programming-in-kotlin) 458 | * [Functional Concurrency in .NET](https://www.manning.com/books/functional-concurrency-in-dotnet) 459 | * [Elm in Action](https://www.manning.com/books/elm-in-action?a_aid=elm_in_action&a_bid=b15edc5c) 460 | * [Mostly adequate guide to FP (in javascript)](https://github.com/MostlyAdequate/mostly-adequate-guide) 461 | * [Mostly adequate guide to FP (in javascript) - russian version](https://github.com/MostlyAdequate/mostly-adequate-guide-ru) 462 | * [Functional JavaScript](https://jcouyang.gitbooks.io/functional-javascript/content/en/index.html) 463 | * [Functional Javascript Workshop (console based tutorial)](https://github.com/timoxley/functional-javascript-workshop) 464 | * [Functional Programming in JavaScript - Dan Mantyla](https://www.amazon.com/Functional-Programming-JavaScript-Dan-Mantyla/dp/1784398225) 465 | * [Functional JavaScript: Introducing Functional Programming with Underscore.js - Michael Fogus](https://www.amazon.com/Functional-JavaScript-Introducing-Programming-Underscore-js/dp/1449360726/) 466 | * [A big list of books about functional programming](http://alexott.net/en/fp/books) 467 | * [PureScript by Example](https://leanpub.com/purescript/read) 468 | * [Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire](http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf) 469 | * [Lenses in Functional Programming](https://www21.in.tum.de/teaching/fp/SS15/papers/17.pdf) 470 | * [The Weird World of Bi-Directional Programming](https://www.cis.upenn.edu/~bcpierce/papers/lenses-etapsslides.pdf) 471 | * [Functional Programming in JavaScript](https://www.manning.com/books/functional-programming-in-javascript) 472 | * [Excerpt Funtional Programming JavaScript](http://cooperpress.s3.amazonaws.com/Excerpt_FPJavaScript.pdf) 473 | * [Elm tutorial book](http://www.elm-tutorial.org/index.html) 474 | * [Purescript Pux](http://www.alexmingoia.com/purescript-pux) 475 | * [The Neophyte's Guide to Scala](http://danielwestheide.com/scala/neophytes.html) 476 | * [Elm by Example - Grzegorz Balcerek](http://elm-by-example.org) 477 | * [Learn you a Haskell for great good! (A beginner's guide)](http://learnyouahaskell.com/) 478 | * [Learning Haskell](http://learn.hfm.io/) 479 | * [Programming with Refinement Types - An Introduction to LiquidHaskell](http://ucsd-progsys.github.io/liquidhaskell-tutorial/) 480 | * [learning Scalaz](http://eed3si9n.com/learning-scalaz/) 481 | * [Learn you some Erlang for great good!](http://learnyousomeerlang.com/) 482 | * [О Haskell по-человечески](https://www.ohaskell.guide/) 483 | * [F# for Fun and Profit eBook](https://swlaschin.gitbooks.io/fsharpforfunandprofit/content/) 484 | * [An Introduction to Elm](http://guide.elm-lang.org/) 485 | * [A book about functional programming in JavaScript](https://github.com/getify/functional-light-js) 486 | * [Learn you an Agda](http://learnyouanagda.liamoc.net/toc.html) 487 | * [Learn F#](https://www.manning.com/books/learn-fsharp) 488 | * [The Transparent Web](https://manning.com/books/the-transparent-web) 489 | * [JavaScript Allongé, the "Six" Edition](https://leanpub.com/javascriptallongesix/read) 490 | * [Parallel Computing: Theory and Practice](http://www.cs.cmu.edu/afs/cs/academic/class/15210-f15/www/tapp.html) 491 | * [Haskell Tutorial and Cookbook](https://leanpub.com/haskell-cookbook/read) 492 | * [Розплутаний ClojureScript](https://lambdabooks.github.io/clojurescript-unraveled/) 493 | * [Get Programming with Haskell](https://www.manning.com/books/get-programming-with-haskell) 494 | * [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) 495 | * [Grokking Simplicity: Taming complex software with functional thinking - Eric Normand](https://www.manning.com/books/grokking-simplicity) 496 | * [Functional Programming in Scala, Second Edition](https://www.manning.com/books/functional-programming-in-scala-second-edition) 497 | * [Functional Programming in C#, Second Edition](https://www.manning.com/books/functional-programming-in-c-sharp-second-edition) 498 | * [Grokking Functional Programming](https://www.manning.com/books/grokking-functional-programming) 499 | * [Functional Programming in Kotlin](https://www.manning.com/books/functional-programming-in-kotlin) 500 | * [Grokking Simplicity](https://www.manning.com/books/grokking-simplicity) 501 | * [Functional Programming, Simplified](https://alvinalexander.com/scala/functional-programming-simplified-book/) 502 | * [Clojure for the Brave and True](https://www.braveclojure.com/clojure-for-the-brave-and-true/) 503 | * [OCaml Programming: Correct + Efficient + Beautiful](https://cs3110.github.io/textbook/cover.html) 504 | 505 | --- 506 | 507 | ## Resources 508 | 509 | * [ML Dialects and Haskell: SML, OCaml, F#, Haskell](http://hyperpolyglot.org/ml) 510 | * [Haskell for OCaml programmers](http://science.raphael.poss.name/haskell-for-ocaml-programmers.html) 511 | * [Free monads](https://gist.github.com/safareli/b43f43d3e65483b71b08b894386f4d71) 512 | * [Functional Programming by Example](http://caiorss.github.io/Functional-Programming/) (***) 513 | * [Haskell by Example](https://lotz84.github.io/haskellbyexample/) 514 | * [http://chris-taylor.github.io](http://chris-taylor.github.io/) 515 | * [FPCasts - Your source for Functional Programing Related Podcasts](https://www.fpcasts.com/) 516 | * [Blog Jakub Arnold](http://blog.jakubarnold.cz/) 517 | * [Primers](https://jeremykun.com/primers/) 518 | * [Railway Oriented Programming](http://fsharpforfunandprofit.com/rop/) 519 | * [Материалы курсов по Clojure, бесплатно и онлайн](http://clojurecourse.by/) 520 | * [24 Days of PureScript](https://gist.github.com/paf31/8e9177b20ee920480fbc) 521 | * [Category Theory for Programmers: The Preface](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/) 522 | * [The official supporting materials repository for LambdaConf 2015](https://github.com/degoes-consulting/lambdaconf-2015) 523 | * [The Glasgow Haskell Compiler. Simon Marlow and Simon Peyton-Jones](http://aosabook.org/en/ghc.html) 524 | * [diagrams is a powerful, flexible, declarative domain-specific language for creating vector graphics, using the Haskell programming language.](http://projects.haskell.org/diagrams/) 525 | * [24 Days of GHC Extensions](https://ocharles.org.uk/blog/pages/2014-12-01-24-days-of-ghc-extensions.html) 526 | * [https://rosettacode.org/wiki/Category:Haskell](https://rosettacode.org/wiki/Category:Haskell) 527 | * [Corecursion](https://en.wikipedia.org/wiki/Corecursion) 528 | * [Pointfree.io - convert Haskell code into pointfree Haskell code](http://pointfree.io/) 529 | * [Typeclassopedia](https://wiki.haskell.org/Typeclassopedia) 530 | * [Philip Wadler's home page](http://homepages.inf.ed.ac.uk/wadler/) 531 | * [Javascript Monad Transformers](http://akh-js.com/) 532 | * [Functor](https://en.wikipedia.org/wiki/Functor) 533 | * [http://fprog.ru](http://fprog.ru/) 534 | * [Scala Tour](http://www.scala-tour.com/#/welcome) 535 | * [An es6 js maybe monad, using generators](https://gist.github.com/torgeir/7618372) 536 | * [Trying to apply ES6 generators to create monad comprehensions. Unfortunately it looks like this will not work with monads that contain multiple values, such as arrays](https://gist.github.com/hallettj/9827604) 537 | * [Free monad based thread simulation and FRP constructs written in JavaScript](https://gist.github.com/jkpl/9ef31e82dea59be2be7f) 538 | * [Code Samples Functional Programming in JavaScript, Manning 2016](https://github.com/luijar/functional-programming-js) 539 | * [Visual programming meets Haskell](https://github.com/viskell/viskell) 540 | * [Luna. Visual and textual functional programming language with a focus on productivity, collaboration and development ergonomics](http://www.luna-lang.org/) 541 | * [A curated list of awesome functional programming stuff in js](https://github.com/stoeffel/awesome-fp-js) 542 | * [Community driven Elm guide for JS people](https://github.com/elm-guides/elm-for-js) 543 | * [An overview of Elm syntax and features](https://github.com/izdi/elm-cheat-sheet) 544 | * [Conal Elliott blog](http://conal.net/blog) 545 | * [Brian Lonsdorf on medium](https://medium.com/@drboolean) 546 | * [Elm weekly](http://www.elmweekly.nl) 547 | * [Almost all about monads](https://flipboard.com/topic/monad) 548 | * [Notes, Thoughts, & Examples derived from reading Functional Javascript by Michael Fogus](https://github.com/hackerrdave/functional-javascript) 549 | * [Simple examples to help you understand ES6](https://github.com/sgaurav/understanding-es6) 550 | * [Functorial Blog - A blog about functional programming](http://blog.functorial.com/index.html) 551 | * [http://functionaljavascript.blogspot.com](http://functionaljavascript.blogspot.com) 552 | * [http://buzzdecafe.github.io](http://buzzdecafe.github.io) 553 | * [http://blog.codeprototype.com](http://blog.codeprototype.com) 554 | * [http://simplectic.com/blog](http://simplectic.com/blog) 555 | * [http://joneshf.github.io](http://joneshf.github.io) 556 | * [http://www.luisatencio.net](http://www.luisatencio.net) 557 | * [http://bartoszmilewski.com](http://bartoszmilewski.com) 558 | * [http://rebcabin.github.io](http://rebcabin.github.io) 559 | * [http://blog.jakubarnold.cz](http://blog.jakubarnold.cz/) 560 | * [https://juxt.pro/radar.html - The 2016 JUXT Clojure Technology Radar](https://juxt.pro/radar.html) 561 | * [http://clojurewerkz.org - A growing collection of open source Clojure libraries](http://clojurewerkz.org) 562 | * [http://www.parsonsmatt.org - Elm, Haskell, Purescript](http://www.parsonsmatt.org) 563 | * [Lo-Fi Learning - Advanced topics from our blackboard to your screen](http://school.looprecur.com) 564 | * [FunctionalTalks.org - Brilliant people giving brilliant talks on Functional Programming.](http://functionaltalks.org) 565 | * [functional-javascript-workshop - a functional javascript workshop. No libraries required (i.e. no underscore), just ES5](https://github.com/timoxley/functional-javascript-workshop) 566 | * [gist of functional utils which written on ES6](https://gist.github.com/bendc/9b05735dfa6966859025) 567 | * [Answers to the exercises from https://github.com/MostlyAdequate/mostly-adequate-guide](https://github.com/gypsydave5/mostly-adequate-functional-answers) 568 | * [Introduction to Functional Programming (course from edx.org)](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0) 569 | * [functional-programming-jargon - Jargon from the functional programming world in simple terms](https://github.com/hemanth/functional-programming-jargon) 570 | * [Category theory jargon cheat sheet](https://gist.github.com/cb372/b1bad150e0c412fb7364) 571 | * [js-funcional - A Cookbook for writing FP in JavaScript using ES6](https://github.com/js-functional/js-funcional) 572 | * [functional-frontend-architecture - A functional frontend framework.](https://github.com/paldepind/functional-frontend-architecture) 573 | * [A book series on JavaScript](https://github.com/getify/You-Dont-Know-JS) 574 | * [FP101x - Functional Programming MOOC 2015 Content Repository](https://github.com/fptudelft/FP101x-Content-2015) 575 | * [Functional Programming in Javascript (Online tutorial)](http://reactivex.io/learnrx) 576 | * [A list of functional javascript resources](https://github.com/jkup/functional-javascript) 577 | * [Contravariance is the Dual of Covariance](http://www.infoq.com/presentations/covariance-contravariance-joy-of-coding-2014) 578 | * [Functional Programming concepts, examples and patterns illustrated in Haskell, Ocaml and Python](https://github.com/caiorss/Functional-Programming) 579 | * [A puzzle game written on purescript](https://github.com/sharkdp/cube-composer) 580 | * [Total functional programming (ESFP)](https://github.com/mietek/total-functional-programming) 581 | * [Code, exercises, answers, and hints to go along with the book "Functional Programming in Scala"](https://github.com/fpinscala/fpinscala) 582 | * [Functional programming (page on wiki of Haskell)](https://wiki.haskell.org/Functional_programming) 583 | * [Category Theory Presentation](http://yannesposito.com/Scratch/en/blog/Category-Theory-Presentation) 584 | * [A Guide to Functional Programming Lingo for JavaScripters](https://gist.github.com/ericelliott/ea925c58410f0ae74aef) 585 | * [Haskell monads for learning purposes in javascript](https://github.com/raimohanska/Monads) 586 | * [Cheat sheet for Monads in Haskell](https://dkalemis.wordpress.com/2014/08/02/cheat-sheet-for-monads-in-haskell) 587 | * [Monad](https://wiki.haskell.org/Monad) 588 | * [Monad (in computer science)](http://ncatlab.org/nlab/show/monad+(in+computer+science)) 589 | * [The Indexed Continuation Monad in Haskell, Scala, and C#](https://gist.github.com/pthariensflame/5716594) 590 | * [Informatics 1: Functional Programming](https://www.inf.ed.ac.uk/teaching/courses/inf1/fp) 591 | * [Source code for blog post Journey from procedural to reactive JavaScript with stops](https://github.com/bahmutov/javascript-journey) 592 | * [Functional Programming in Javascript (online exercises)](http://reactivex.io/learnrx) 593 | * [Category Theory for Programmers: The Preface](http://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface) 594 | * [Building a modern functional compiler from first principles](https://github.com/sdiehl/write-you-a-haskell) 595 | * [Archive the best resources surrounding the functional programming paradigm for Javascript developers](https://github.com/radiovisual/functional-programming-resources) 596 | * [Ramtuary REPL](http://davidchase.github.io/ramtuary) 597 | * [Haskell for Maths](http://haskellformaths.blogspot.com) 598 | * [Y combinator](http://rosettacode.org/wiki/Y_combinator) 599 | * [A collection about Functional Reactive Programming in Swift](https://github.com/onmyway133/functional-swift) 600 | * [Patterns in Functional Programming](https://patternsinfp.wordpress.com) 601 | * [What I Wish I Knew When Learning Haskell](http://dev.stephendiehl.com/hask) 602 | * [Learn Haskell](https://github.com/bitemyapp/learnhaskell) 603 | * [Awesome Haskell](https://github.com/krispo/awesome-haskell) 604 | * [Введение в функциональное программирование на скале](http://www.otstavnov.com/Odersky_Scala_lecture-notes.html) 605 | * [Monoidal Contravariant Functors and Transducers](https://gist.github.com/DrBoolean/fdef9e08352ac42754f1) 606 | * [Functional Programming Resources In JavaScript](https://github.com/busypeoples/functional-programming-javascript) 607 | * [Unofficial a documentation of lodash-fp](https://gist.github.com/jfmengels/6b973b69c491375117dc#_castarrayvalue) 608 | * [Collection of examples on places where Elm is different to Haskell](https://github.com/eeue56/haskell-to-elm) 609 | * [Kickstart your web development with Elm](https://github.com/eeue56/elm-for-web-developers) 610 | * [Explorations in Functional Land](https://github.com/svenschmidt75/Functional) 611 | * [Coeffects: Context-aware programming languages](http://tomasp.net/coeffects/) 612 | * [Formalization of the Dependent Object Types (DOT) calculus](https://github.com/samuelgruetter/dot-calculus) 613 | * [Dependent Object Types (DOT)](https://github.com/namin/dot) 614 | * [Neon - Experimental PureScript standard library](https://gist.github.com/tfausak/96411fd7400aa06478675c7e6c75ebd4) 615 | * [JS-monads-stable](https://github.com/dschalk/JS-monads-stable) 616 | * [Pragmatic functional programming in JavaScript - Workshop material](https://github.com/staltz/fp-js-workshop) 617 | * [cor - The Language of the Web](https://github.com/yosbelms/cor) 618 | * [djinn - Generate Haskell code from a type](https://github.com/augustss/djinn) 619 | * [forwardcourses about functional programming](https://forwardcourses.com/lectures/track/fp) 620 | * [λ List of resources related to Functional Programming in JS](https://github.com/codekult/adventures-of-lambda-in-JS) 621 | * [Monad tutorials timeline](https://wiki.haskell.org/Monad_tutorials_timeline) 622 | * [JSON to Elm](http://eeue56.github.io/json-to-elm/) 623 | * [functionalcs.github.io](https://functionalcs.github.io/curriculum) 624 | * [Haskell MOOC](https://haskell.mooc.fi/) 625 | * [A Functional Introduction To Computer Science (Part I)](https://cs.uwaterloo.ca/~plragde/flaneries/FICS/) 626 | * [A Functional Introduction To Computer Science (Part II)](https://cs.uwaterloo.ca/~plragde/flaneries/FICS2/) 627 | 628 | --- 629 | 630 | ### Combinators 631 | 632 | * [To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction](http://dkeenan.com/Lambda/index.htm) 633 | * [Combinator Birds](http://www.angelfire.com/tx4/cus/combinator/birds.html) 634 | * [Deriving the Y Combinator in 7 Easy Steps](http://igstan.ro/posts/2010-12-01-deriving-the-y-combinator-in-7-easy-steps.html) 635 | * [B, C, K, W system](https://en.wikipedia.org/wiki/B,_C,_K,_W_system) 636 | * [Комбинаторы — это просто!](https://ru.wikibooks.org/wiki/%D0%9A%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%82%D0%BE%D1%80%D1%8B_%E2%80%94_%D1%8D%D1%82%D0%BE_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE!) 637 | * [Комбинаторная логика как формальная система](http://www.ict.edu.ru/ft/005135/ch5.pdf) 638 | * [combinators-js](https://www.npmjs.com/package/combinators-js) 639 | * [SKI combinator calculus](https://en.wikipedia.org/wiki/SKI_combinator_calculus) 640 | * [Combinators](https://gist.github.com/Avaq/1f0636ec5c8d6aed2e45) 641 | * [Fixed-point combinator](https://en.wikipedia.org/wiki/Fixed-point_combinator) 642 | * [Combinatory logic](https://en.wikipedia.org/wiki/Combinatory_logic) 643 | * [Collected Lambda Calculus Functions](http://jwodder.freeshell.org/lambda.html) 644 | * [Combinatory Logic](http://plato.stanford.edu/entries/logic-combinatory/) (*) 645 | * [Combinatory Logic: Finding and Evaluating Combinators](https://www.npmjs.com/package/combilog) 646 | * [Maths - Combinatory Logic](http://www.euclideanspace.com/maths/discrete/logic/combinatory/index.htm) 647 | * [Lambda Calculus](http://softoption.us/content/node/30) 648 | * [From Lambda calculus to Combinator Calculus](http://goodmath.blogspot.com/2006/05/from-lambda-calculus-to-combinator.html) 649 | * [The SKI Combinator Calculus a universal formal system](http://people.cs.uchicago.edu/~odonnell/Teacher/Lectures/Formal_Organization_of_Knowledge/Examples/combinator_calculus/) 650 | * [Lambda Calculus](http://dev.stephendiehl.com/fun/lambda_calculus.html) 651 | * [Combinatory logic](https://esolangs.org/wiki/Combinatory_logic) 652 | * [The Y Combinator (no, not that one). A crash-course on lambda calculus](https://medium.com/@ayanonagon/the-y-combinator-no-not-that-one-7268d8d9c46#.eigwi23hd) 653 | * [The Quantum Electrodynamics of Functional JavaScript](http://raganwald.com/2015/02/13/functional-quantum-electrodynamics.html) 654 | * [Applicative Functor / SKI combinator calculus](https://gist.github.com/tinybyte/3302086) 655 | 656 | --- 657 | 658 | ## Presentations 659 | 660 | * [Awesomely descriptive JavaScript with monads](https://docs.google.com/presentation/d/12GpX3AXTS6uJHqRK_Q3RgkIg9ZTr4r37N0MTkk0CL14/edit#slide=id.p) 661 | * [Functional Programming from Brian Lonsdorf (awesome presentation)](https://docs.google.com/presentation/d/1YOJ2hU60KcXJ3m3CG28EtfTO4t1OP_JR0gpM82i2xcI/edit#slide=id.g338d117be_040) 662 | * [Functional Programming Patterns](http://www.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt) (must have) 663 | * [Domain Modeling in a Functional World](http://www.slideshare.net/debasishg/qconny-12) 664 | * [Functional Programming in JavaScript](http://www.slideshare.net/LuisAtencio3/functional-programming-in-javascript-by-luis-atencio) 665 | * [ECMAScript 6 Quiz](http://maxwellito.github.io/es6-quiz-slides) 666 | * [Functional Programming from Scott Sauyet](http://scott.sauyet.com/Javascript/Talk/FunctionalProgramming) 667 | * [FKit: Everyday Functional Programming in JavaScript](https://speakerdeck.com/nullobject/fkit-everyday-functional-programming-in-javascript) 668 | * [Ramda: Practical Functional Javascript](http://slides.com/andydrew/ramda-js-curry-compose) 669 | * [Category theory, Monads, and Duality in the world of (BIG) Data](http://www.slideshare.net/greenwop/category-theory-monads-and-duality-in-the-world-of-big-data) 670 | * [Functional Programming in 5 Minutes](http://slides.com/gsklee/functional-programming-in-5-minutes) 671 | * [Introduction to Functional Programming](http://slides.com/jingchuanchen/intro-to-fp) 672 | * [Monads](http://slides.com/aripaasonen/monads) 673 | * [Pragmatic Functional Programming](http://slides.com/rossmurray/pragmatic-functional-programming) 674 | * [Intro to Functional Programming](http://www.slideshare.net/firthh/intro-to-functional-programming-levelup-brisbane) 675 | * [Who's More Functional: Kotlin, Groovy, Scala, or Java?](http://www.slideshare.net/abreslav/whos-more-functional-kotlin-groovy-scala-or-java) 676 | * [Introduction to Functional Programming in JavaScript](http://www.slideshare.net/tmont/introduction-to-functional-programming-in-javascript) 677 | * [Category Theory: An Abstraction for Anything](http://www.infoq.com/presentations/category-theory) 678 | * [Немного о функциональном программирование в JavaScript](http://pt.slideshare.net/fwdays/javascript-47497140) 679 | * [Category theory for beginners](http://www.slideshare.net/kenbot/category-theory-for-beginners) 680 | * [Getting Started with PureScript by Michael Ficarra](https://speakerdeck.com/michaelficarra/getting-started-with-purescript) 681 | * [Functional Programming Forever](http://slides.com/thomasomans/functional-programming-forever#/) 682 | * [Why Haskell?](http://slides.com/etrepum/preview-intro-to-haskell) 683 | * [PureScript](https://docs.google.com/presentation/d/1IOM9A3Otxufs5xzvYb3yPrT7JDVPhkJVkdaWvVl8R_E/pub?start=false&loop=false&delayms=3000&slide=id.ge5fcfef40_0_5) 684 | * [Анонимные записи в Haskell](http://www.slideshare.net/cblpsu/3-anonymous-records) 685 | * [Better know a language PureScript](http://taylor.fausak.me/static/pages/2015-10-22-better-know-a-language-purescript.html) 686 | * [Functional Patterns in JavaScript](http://slides.com/hackbulgaria/functional-patterns-in-javascript#/) 687 | * [Collections libraries in JavaScript](http://slides.com/sashqa/deck#/) 688 | * [Transducers - Reducing complexity with reducers](http://slides.com/plaid/deck#/) 689 | * [Remove the Boilerplate](http://slides.com/bahmutov/remove-the-boilerplate#/) 690 | * [Functional Programming. Patterns in Scala](http://jsuereth.com/intro-to-fp/preso.html) 691 | * [Map, Flatmap and Reduce are Your New Best Friends: Simpler Collections, Concurrency, and Big Data](http://www.slideshare.net/chris.e.richardson/map-flatmap-and-reduce-are-your-new-best-friends-simpler-collections-concurrency-and-big-data-oscon) 692 | * [Functional Programming in JavaScript by Luis Atencio](http://www.slideshare.net/LuisAtencio3/functional-programming-in-javascript-by-luis-atencio) 693 | * [CodeMash: Functional Programming Basics in ES6](https://speakerdeck.com/jfairbank/codemash-functional-programming-basics-in-es6) 694 | * [Fluent Conf: Rise of Async JavaScript ](https://speakerdeck.com/jfairbank/fluent-conf-rise-of-async-javascript) 695 | * [Монады для барабанщиков](http://www.slideshare.net/cblpsu/ss-60053562) 696 | * [Building Functional Islands by Mark Jones](https://speakerdeck.com/thisismarkup/building-functional-islands) 697 | * [Reactive UIs with Halogen](https://docs.google.com/presentation/d/1uwKxJzNx8pBL2QCUKYy2mgkEbrCdEjKbYOj3mJ4nyEo/edit#slide=id.g775150948_0_41) 698 | * [Fun* JavaScript Workshop - Dr. Gleb Bahmutov PhD](http://slides.com/bahmutov/fun-javascript-workshop#/) 699 | * [TYPESAFE SQL IN HASKELL - AN INTRODUCTION TO OPALEYE](http://opaleye.benkolera.com/#/) 700 | * [Playing with Graphics and Animations in Haskell by Manuel Chakravarty](https://speakerdeck.com/mchakravarty/playing-with-graphics-and-animations-in-haskell) 701 | * [Practically workshop](https://www.slideshare.net/secret/3IPPDiGR2QXNEz) 702 | 703 | --- 704 | 705 | ## Videos 706 | 707 | * [Jason Ganetsky on Making a Fast Curry: Push/Enter vs. Eval/Apply for Higher-order Languages](http://paperswelove.org/2015/video/jason-ganetsky-fast-curry) 708 | * [Erik Meijer: Functional Programming](https://www.youtube.com/watch?v=z0N1aZ6SnBk) 709 | * [Lambda Days 2015 - Kuba Waliński - Fun with Functional JavaScript](https://www.youtube.com/watch?v=WY3q6Np7PwM) 710 | * [Functional Programming with Kotlin](https://www.youtube.com/watch?v=AhA-Q7MOre0&list=WL&index=63) 711 | * [Category theory for JavaScript programmers](https://www.youtube.com/playlist?list=PLwuUlC2HlHGe7vmItFmrdBLn6p0AS8ALX) 712 | * ["Everything Old is New Again: Quoted Domain Specific Languages" by Philip Wadler](https://www.youtube.com/watch?v=DlBwJ4rvz5c) 713 | * [Classroom Coding with Prof. Frisby](https://www.youtube.com/watch?v=h_tkIpwbsxY&list=PLK_hdtAJ4KqX0JOs_KMAmUNTNMRYhWEaC) 714 | * [FP-Syd - PureScript: An Overview for Haskellers by Tim Docker (Jul 2015)](https://www.youtube.com/watch?v=udg01o2M4iY) 715 | * [Intro to PureScript -- Utah Haskell Meetup](https://www.youtube.com/watch?v=9a57V3bvzaI) 716 | * [Haskell Programming Tutorial](https://www.youtube.com/watch?v=Sinr-kVzsLI&list=PLa8a_8vztYc4Y5HPptfBhLNZxNgCkWEOr) 717 | * [Monad a day 1: Reader](https://vimeo.com/105300347) 718 | * [Monad a day 2: Future](https://vimeo.com/106008027) 719 | * [Monad a day 3: State](https://vimeo.com/109984691) 720 | * [Lenses Quick n’ Dirty](https://vimeo.com/104807358) 721 | * [Frontend Masters Workshop finish up](https://vimeo.com/97575933) 722 | * [Professor Frisby Introduces Composable Functional JavaScript](https://egghead.io/courses/professor-frisby-introduces-function-composition) 723 | * [A Million Ways to Fold in JS](https://www.youtube.com/watch?v=JZSoPZUoR58) 724 | * [Coyoneda in Javascript](https://www.youtube.com/watch?v=WH5BrkzGgQY) 725 | * [Freer Monad (We define Maybe and IO in the freer monad)](https://www.youtube.com/watch?v=RkDtMeZXMTA) 726 | * [Free(er) Monads in JS pt 2 (Defining an interpreter for multiple natural transformations)](https://www.youtube.com/watch?v=KFCEJUjsdQg) 727 | * [What is pure functional programming, and how it can improve our application testing? by Luca Molteni](https://www.youtube.com/watch?v=dOJPDH4461k) 728 | * [Start Using Elm to Build Web Applications](https://egghead.io/courses/start-using-elm-to-build-web-applications) 729 | * [How to Create Tetris in Elm](https://www.youtube.com/watch?v=GMSXYnMH1gg&list=PL7C8fMD-89DKhlerIE3BrYNd0PlhA6Zch) 730 | * [Scott Wlaschin - Railway Oriented Programming — error handling in functional languages](https://vimeo.com/97344498) 731 | * [Lambda Jam 2014 - Eric Meijer - The Lost Art of Denotational Semantics](https://www.youtube.com/watch?v=pOl4E8x3fmw) 732 | * [SKI School: The Combinator Calculus Demystified](https://www.youtube.com/watch?v=FC6kl_kLFEo) 733 | * [Erik Meijer - Functional Programming From First Principles](https://www.youtube.com/watch?v=mhKl7Ppp_ao) 734 | * [Russian videos about clojure and clojurescript](https://www.youtube.com/watch?v=jguG9rwa6oo&list=PLHOTezm7WWkmk_NxC51xwnC2YsAut_5vX) 735 | * [Parallel and Concurrent Haskell](https://www.youtube.com/watch?v=N6sOMGYsvFA&list=PLbgaMIhjbmEm_51-HWv9BQUXcmHYtl4sw) 736 | * [Functional programming patterns for the non-mathematician (cut)](https://www.youtube.com/watch?v=AvgwKjTPMmM) 737 | * [Brian Beckman: Don't fear the Monad](https://www.youtube.com/watch?v=ZhuHCtR3xq8) 738 | * [Brian Beckman: The Zen of Stateless State - The State Monad](https://www.youtube.com/watch?v=XxzzJiXHOJs) 739 | * [Monads and Gonads](https://www.youtube.com/watch?v=b0EF0VTs9Dc) 740 | * [Haskell Tutorial](https://www.youtube.com/watch?v=02_H3LjqMr8) 741 | * [YOW! Lambda Jam 2016 Conor McBride - What are Types for, or are they only Against?](https://www.youtube.com/watch?v=3U3lV5VPmOU) 742 | * [Phil Freeman - Fun with Profunctors](https://www.youtube.com/watch?v=OJtGECfksds) 743 | * [Monads, Monoids and Composition w/ Functional JavaScript](https://www.youtube.com/watch?v=ZQSU4geXAxM) 744 | * [«PureScript livecoding» by Dmirti Bushenko](https://www.youtube.com/watch?v=Sc3ci8j7Wok&list=PLtAOYbbqpTmxg5fTJK7e8ZXdGzYLROsRm&index=11) 745 | * [Learning Functional Programming with JavaScript by Anjana Vakil at JSUnconf 2016](https://www.youtube.com/watch?v=e-5obm1G_FY) 746 | * [Elm in Purescript](https://www.youtube.com/watch?v=O_kWwaghZ9U) 747 | * [Pure Functional Database Programming with Fixpoint Types—Rob Norris](https://www.youtube.com/watch?v=7xSfLPD6tiQ) 748 | * [Functional JS - Lenses - JavaScript](https://www.livecoding.tv/evilsoft/videos/d5BDO-functional-js-lenses) 749 | * ["Point-Free or Die: Tacit Programming in Haskell and Beyond" by Amar Shah](https://www.youtube.com/watch?v=seVSlKazsNk) 750 | * [The fuel for the Functional Programming engine](https://youtu.be/3G9wOODP7y4) - Michal Plachta 751 | * [Functional Programming with TypeScript](https://www.youtube.com/playlist?list=PLuPevXgCPUIMbCxBEnc1dNwboH6e2ImQo) 752 | 753 | --- 754 | 755 | ## Youtube channels 756 | 757 | * [Functional Works](https://www.youtube.com/channel/UCE6NivlVPGUn3TMtDAeL2vQ) 758 | * [Scala World](https://www.youtube.com/channel/UCc0j7uOItUDh7vEvPb-TeCg) 759 | * [ruHaskell](https://www.youtube.com/channel/UCbIkFj1mYQI7lmrc5BXGyAg) 760 | * [Brian Lonsdorf](https://www.youtube.com/channel/UCKjVLbSDoM-8-eEM7A30igA) 761 | * [jasonofthel33t](https://www.youtube.com/user/jasonofthel33t) 762 | * [Лекториум](https://www.youtube.com/user/OpenLektorium) 763 | * [Scala Russia](https://www.youtube.com/channel/UCR4iuvbk9DCuieR1ADIi0-Q) 764 | * [Manning Publications](https://www.youtube.com/channel/UCDia_lkNYKLJVLRLQl_-pFw) 765 | * [Web Village Voyage](https://www.youtube.com/@webvv) 766 | 767 | --- 768 | 769 | ## Libraries 770 | 771 | ### [Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) 772 | 773 | *** 774 | * [**Lodash** - A JavaScript utility library delivering consistency, modularity, performance, & extras](https://lodash.com) 775 | * [**Ramda** - A practical functional library for Javascript programmers](http://ramdajs.com) 776 | * [**functional.js** - The functional JavaScript library](http://functionaljs.com) 777 | * [**fantasy-land** - Specification for interoperability of common algebraic structures in JavaScript](https://github.com/fantasyland/fantasy-land) 778 | * [**Crocks - A collection of well known Monadic Containers for your utter enjoyment.**](https://github.com/evilsoft/crocks) 779 | * [**wu.js** - is a JavaScript library providing higher order functions (such as map, filter, and reduce) for ECMAScript 6 iterators](http://fitzgen.github.io/wu.js) 780 | * [**pointfree-fantasy** - Point free wrappers for fantasy land](https://github.com/DrBoolean/pointfree-fantasy) 781 | * [**folktalejs** - Robust, Scalable, DRY. Folktale is a suite of libraries for generic functional programming in JavaScript that allows you to write elegant modular applications with fewer bugs, and more reuse](http://folktalejs.org) 782 | * [**fn.js** - A JavaScript library built to encourage a functional programming style & strategy](http://eliperelman.com/fn.js) 783 | * [**bilby.js** - is a serious functional programming library](http://bilby.brianmckenna.org) 784 | * [**lazy.js** - is a functional utility library for JavaScript, similar to Underscore and Lo-Dash, but with an underlying engine that supports many more use cases than those libraries, while offering comparable or superior performance in most scenarios](http://danieltao.com/lazy.js) 785 | * [**monet.js** - Monadic types library for JavaScript](http://cwmyers.github.com/monet.js) 786 | * [**lamb** - A lightweight, and docile, JavaScript (ES5) library to help embracing functional programming](http://ascartabelli.github.io/lamb) 787 | * [**sanctuary** - Refuge from unsafe JavaScript](https://github.com/plaid/sanctuary) [official site](http://sanctuary.js.org) 788 | * [**trine** - A utility library for modern JavaScript](https://github.com/jussi-kalliokoski/trine) 789 | * [**lodash-fp** - lodash with auto-curried iteratee-first data-last methods](https://github.com/lodash/lodash-fp) 790 | * [**alicates** - Small library for functional programming with ES2015+](https://github.com/gonzaloruizdevilla/alicates) 791 | * [**creed** - Sophisticated and functionally-minded async with advanced features: coroutines, promises, ES2015 iterables, fantasy-land](https://github.com/briancavalier/creed) 792 | * [**js-csp** - Communicating sequential processes for Javascript (like Clojurescript core.async, or Go)](https://github.com/ubolonton/js-csp) 793 | * [**transducers-js** - A high performance Transducers implementation for JavaScript](https://github.com/cognitect-labs/transducers-js) 794 | * [**transducers.js** - A small library for generalized transformation of data (inspired by Clojure's transducers)](https://github.com/jlongster/transducers.js) 795 | * [**csp** - CSP/Actor/Transducer Experiments](https://github.com/phuu/csp) 796 | * [**underarm** - Transducers Inspired by Underscore](https://github.com/kevinbeaty/underarm) 797 | * [**transduce** - JavaScript transducers](https://github.com/transduce/transduce) 798 | * [**fkit** - A functional programming toolkit for JavaScript](https://github.com/nullobject/fkit) 799 | * [**contra** - Asynchronous flow control with a functional taste to it](https://github.com/bevacqua/contra) 800 | * [**neo-async** - Neo-Async is thought to be used as a drop-in replacement for Async, it almost fully covers its functionality and runs faster](https://github.com/suguru03/neo-async) 801 | * [**async** - Async utilities for node and the browser](https://github.com/caolan/async) 802 | * [**nimble** - A really tiny functional JavaScript and async flow-control library](https://github.com/caolan/nimble) 803 | * [**udon** - Practical functional programming in JavaScript](https://github.com/beastaugh/udon) 804 | * [**culljs** - Functional javascript for adults - no cushions included](https://github.com/culljs/culljs) 805 | * [**it.js** - Chainable object-oriented functional combinators](https://github.com/dtinth/it.js) 806 | * [**linq** - linq.js - LINQ for JavaScript library](https://github.com/mihaifm/linq) 807 | * [**Sugar** - A Javascript library for working with native objects](https://github.com/andrewplummer/Sugar) 808 | * [**cat.js** - Category Theory for JavaScript](https://github.com/jcouyang/cat.js) 809 | * [**f** - Implementing native versions of Haskell functions according to JavaScript ES6 standards](https://github.com/casualjs/f) 810 | * [**este** - Dev stack and starter kit for functional and universal React web apps](https://github.com/este/este) 811 | * [**Slack** - Lazy functional JS library](https://github.com/loosechainsaw/Slack) 812 | * [**nux** - A Push-Based Functional Reactive UI Library for the Web](https://github.com/marknutter/nux) 813 | * [**ftoer** - A pragmatic library facilitating functional programming in javascript](https://github.com/ftoer/ftoer) 814 | * [**fops** - Curried, functional operators](https://github.com/nickb1080/fops) 815 | * [**nodent** - Asynchronous Javascript language extensions](https://github.com/MatAtBread/nodent) 816 | * [**funkit** - Functional toolkit for javascript](https://github.com/mwardle/funkit) 817 | * [**funko** - Naive minimalistic functional programming library](https://github.com/mickvangelderen/funko) 818 | * [**fantasy-lenses** - Composable, immutable getters and setters](https://github.com/fantasyland/fantasy-lenses) 819 | * [**chunkify** - A functional API to unblock your JavaScript](https://github.com/yangmillstheory/chunkify) 820 | * [**co-functional** - co-functional is a MIT licenced library that provides several functions for use with the co library](https://github.com/N0ps32/co-functional) 821 | * [**redash** - Compact library for writing performant functional JavaScript](https://github.com/davezuko/redash) 822 | * [**iterablejs** - Lazy-loading wrapper for iterable items and common functional programming operations](https://github.com/dvlsg/iterablejs) 823 | * [**async-csp** - CSP style channels using ES7 async/await](https://github.com/dvlsg/async-csp) 824 | * [**conjs** - a featured fork of mori, with core.async included](https://github.com/jcouyang/conjs) 825 | * [**switch-fn** - Write a functional switch statement](https://github.com/ajoslin/switch-fn) 826 | * [**asyncawait** - Callback heaven for Node.js with async/await](https://github.com/yortus/asyncawait) 827 | * [**kneden** - Transpile ES7 async/await to vanilla ES6 Promise chains: a Babel plugin](https://github.com/marten-de-vries/kneden) 828 | * [**asyncbox** - A collection of ES7 async/await utilities](https://github.com/jlipps/asyncbox) 829 | * [**medium** - CSP-style channel library using ES7 async/await keywords](https://github.com/bbarr/medium) 830 | * [**prelude** - Base functional programming utils for mostjs packages](https://github.com/mostjs/prelude) 831 | * [**fantasy-birds** - port of the haskell package Data.Aviary.Birds. Every thing for your combinatory needs](https://github.com/fantasyland/fantasy-birds) 832 | * [**scour** - Traverse objects and arrays with ease](https://github.com/rstacruz/scour) 833 | * [**monad-transformers** - Practical monad transformers for JS](https://github.com/boris-marinov/monad-transformers) 834 | * [**lazy-either** - A lazy implementation of the Fantasy Land Either type](https://github.com/Risto-Stevcev/lazy-either) 835 | * [**parallel-future** - Run Futures in parallel](https://github.com/futurize/parallel-future) 836 | * [**futurize** - Turn callback-style functions or promises into futures](https://github.com/futurize/futurize) 837 | * [**daggy** - Library for creating tagged constructors](https://github.com/puffnfresh/daggy) 838 | * [**barely-functional** - tiny (2.7kb) functional programming library using native es5/6 operations](https://github.com/cullophid/barely-functional) 839 | * [**fantasydo** - Do-notation for javascript fantasy land](https://github.com/russellmcc/fantasydo) 840 | * [**linq.ts** - LinQ for TypeScript](https://github.com/kutyel/linq.ts) 841 | * [**Fluture** - A complete Fantasy Land compatible Future library](https://github.com/Avaq/Fluture) 842 | * [**1-liners** - Functional tools that couldn’t be simpler](https://github.com/1-liners/1-liners) 843 | * [**immutable-ext** - fantasyland extensions for immutablejs](https://github.com/DrBoolean/immutable-ext) 844 | * [**optics** - This library is an implementation of profunctor optics using JS, heavily influenced by the PureScript Profunctor Lenses and Kmett's Lens libraries.](https://github.com/flunc/optics) 845 | * [**monady** - Composable monads for functional async flow](https://github.com/GeorgeSapkin/monady) 846 | * [**pure-random** - A purely functional random number generator](https://github.com/Risto-Stevcev/pure-random) 847 | * [**kewler** - Simple functional and immutable color manipulation library](https://github.com/adriantoine/kewler) 848 | * [**static-land** - Specification for common algebraic types in JavaScript based on Fantasy Land](https://github.com/rpominov/static-land) 849 | * [**Idealist** - Functional HTTP micro-framework](https://github.com/Avaq/Idealist) 850 | * [**cali** - A JavaScript utility library with a functional programming flavor](https://github.com/jedirandy/cali) 851 | * [**union-type** - A small JavaScript library for defining and using union types](https://github.com/paldepind/union-type) 852 | * [**fantasy-frees** - Free monads](https://github.com/fantasyland/fantasy-frees) 853 | * [**ramda-fantasy** - Fantasy-Land compatible types for easy integration with Ramda.js](https://github.com/ramda/ramda-fantasy) 854 | * [**fantasy-derivations** - Use methods on ADTs whether or not they're defined](https://github.com/rjmk/fantasy-derivations) 855 | * [**fantasy-do** - Do notation for javascript](https://github.com/jwoudenberg/fantasy-do) 856 | * [**future-io** - A fantasy-land compliant monadic IO library for Node.js.](https://github.com/futurize/future-io) 857 | * [**List-in-JS** - List in JS provides List like List of Haskell. List in JS implements Fantasy Land Specification. List is a Setoid, a Semigroup, a Monoid, a Functor, an Applicative Functor, Foldable, Traversable, a Chain and a Monad](https://github.com/PandaNoir/List-in-JS/) 858 | * [**doM.js** - "do" monad syntax for JavaScript](https://github.com/elclanrs/doM.js) 859 | * [**do-notation** - Do notation for Fantasy Land monad types](https://github.com/Risto-Stevcev/do-notation) 860 | * [**burrido** - Do-notation for JavaScript](https://github.com/pelotom/burrido) 861 | * [**monadic** - Do-notation and Monads for JavaScript](https://github.com/five-eleven/monadic) 862 | * [**async-ls** - Higher order functions, compositions and common operations for asynchronous programming in LiveScript](https://github.com/homam/async-ls) 863 | * [**florida** - Pure functional accessor factories in js](https://github.com/Hypercubed/florida) 864 | * [**mandolin** - Painlessly enhance your JavaScript with monadic types](https://github.com/bioball/mandolin) 865 | * [**operajonal** - Implementation of free monads in JavaScript, based on Haskell's operational package](https://github.com/phipsgabler/operajonal) 866 | * [**free** - Combination of a free applicative functor and free monad](https://github.com/safareli/free) 867 | * [**freeky** - Free monad Collection](https://github.com/DrBoolean/freeky) 868 | * [**immutagen** - A library for simulating immutable generators in JavaScript](https://github.com/pelotom/immutagen) 869 | * [**gentoo** - Tools for ES6 generators](https://github.com/sashee/gentoo) 870 | * [**TsMonad** - Little monad library designed for TypeScript](https://github.com/cbowdon/TsMonad) 871 | * [**jabz** - Powerful and practical abstractions for JavaScript and TypeScript. Functors, Monads, Traversables and all that jazz](https://github.com/paldepind/jabz) 872 | * [**async-to-gen** - Transform async functions to generator functions with speed and simplicity](https://github.com/leebyron/async-to-gen) 873 | * [**imlazy** - Functional, declarative, immutable and lazy as you like](https://github.com/benji6/imlazy) 874 | * [**partial.lenses** - Partial lenses is a comprehensive, high-performance optics library for JavaScript](https://github.com/calmm-js/partial.lenses) 875 | * [**ramda-lens** - Lens library built on ramda](https://github.com/ramda/ramda-lens) 876 | * [**lenses** - Composable kmett style lenses](https://github.com/DrBoolean/lenses) 877 | * [**streamjs** - Lazy Object Streaming Pipeline for JavaScript](https://github.com/winterbe/streamjs) 878 | * [**chained-promise** - Functional programming tools for recurring promises](https://github.com/google/chained-promise) 879 | * [**maryamyriameliamurphies.js** - A library of Haskell-style morphisms ported to ES2015 JavaScript using Babel](https://github.com/sjsyrek/maryamyriameliamurphies.js) 880 | * [**asyncp** - Port of the async library to use Promises](https://github.com/jgornick/asyncp) 881 | * [**flow-static-land** - Implementation of common algebraic types in JavaScript + Flow](https://github.com/gcanti/flow-static-land) 882 | * [**tiny-tuple** - Tiny Tuple library for Client or Server](https://github.com/avoidwork/tiny-tuple) 883 | * [**adt.js** - Algebraic data types for Javascript](https://github.com/natefaubion/adt.js) 884 | * [**fantasy-states** - State control structure](https://github.com/fantasyland/fantasy-states) 885 | * [**akh-cont** - Akh continuation monad and monad transformer](https://github.com/mattbierner/akh-cont) 886 | * [**sanctuary-type-classes** - Standard library for Fantasy Land](https://github.com/sanctuary-js/sanctuary-type-classes) 887 | * [**ez-dom** - Functional library to manipulate the DOM](https://github.com/jonathandion/ez-dom) 888 | * [**purify** - Functional programming library for TypeScript focusing on ADTs](https://github.com/gigobyte/purify) 889 | * [**QIO** - Purely functional effect management library for Typescript.](https://qio.netlify.com) 890 | 891 | ### [Livescript](https://github.com/gkz/LiveScript) 892 | 893 | *** 894 | * [**prelude.ls** - is a functionally oriented utility library](http://www.preludels.com) 895 | * [**monolith-ls** - Experimental fork of `prelude-ls`, gives a more functional feel to prelude.](https://github.com/masterrace/monolith-ls) 896 | 897 | ### [Java](http://www.oracle.com/technetwork/java/index.html) 898 | 899 | *** 900 | * [**TotallyLazy** - A complete functional environment for Java](http://totallylazy.com) 901 | * [**Frege** - is a Haskell for the JVM. It brings purely functional programing to the Java platform.](https://github.com/Frege/frege) 902 | * [**Vavr** - (formerly called Javaslang) object-functional library that runs with Java 8+](https://www.vavr.io/) 903 | * [**functionaljava** - Functional programming in Java](https://github.com/functionaljava/functionaljava) 904 | * [**yeti** - Functional programming language for JVM](https://github.com/mth/yeti) 905 | * [**Jinq** - LINQ-style queries for Java 8](https://github.com/my2iu/Jinq) 906 | * [**linq4j** - A port of LINQ (Language-Integrated Query) to Java](https://github.com/julianhyde/linq4j) 907 | * [**javaz** - Java 8 lambda experiment](https://github.com/mariofusco/javaz) 908 | 909 | ### [Clojure](https://github.com/clojure/clojure)/[ClojureScript](https://github.com/clojure/clojurescript) 910 | 911 | *** 912 | * [**cats** - Category Theory and Algebraic abstractions for Clojure and ClojureScript](https://github.com/funcool/cats) 913 | * [**jank** - A statically typed functional programming language](https://github.com/jeaye/jank) 914 | * [**lux** - The Lux Programming Language](https://github.com/LuxLang/lux) 915 | 916 | ### [ClojureScript](https://github.com/clojure/clojurescript) 917 | 918 | *** 919 | * [**re-frame** - A Reagent Framework For Writing SPAs, in Clojurescript](https://github.com/Day8/re-frame) 920 | 921 | ### [Scala](https://github.com/scala/scala) 922 | 923 | *** 924 | * [**scalaz** - An extension to the core Scala library for functional programming](https://github.com/scalaz/scalaz) 925 | * [**cats** - Lightweight, modular, and extensible library for functional programming](https://github.com/non/cats) 926 | * [**macroid** - A modular functional UI language for Android](https://github.com/macroid/macroid) 927 | * [**Structures** - Functional type classes for Scala](https://github.com/mpilquist/Structures) 928 | * [**rillit** - Boilerplate-free Functional Lenses for Scala 2.10](https://github.com/akisaarinen/rillit) 929 | 930 | ### [Kotlin](https://github.com/JetBrains/kotlin) 931 | 932 | *** 933 | * [**Arrow** - Functional programming library, which adds patterns, type classes and more](http://arrow-kt.io/) 934 | * [**Forge** - Functional style JSON parsing written in Kotlin](https://github.com/kittinunf/Forge) 935 | * [**funktional** - Kotlin monads](https://github.com/mplatvoet/funktional) 936 | * [**funKTionale** - Functional constructs for Kotlin](https://github.com/MarioAriasC/funKTionale) 937 | * [**kotlinslang** - A functional library for Kotlin that provides functional control structures. Inspired by javaslang](https://github.com/kotlinslang/kotlinslang) 938 | 939 | ### [F#](https://github.com/fsharp/fsharp) 940 | 941 | *** 942 | * [**FSharpPlus** - A complete and extensible base library for F#.](https://github.com/gusty/FSharpPlus) 943 | * [**FSharpx.Extras** - Functional programming and other utilities](https://github.com/fsprojects/FSharpx.Extras) 944 | * [**chiron** - Functional JSON library for F#](https://github.com/xyncro/chiron) 945 | * [**hekate** - Purely Functional Graphs for F#](https://github.com/xyncro/hekate) 946 | * [**freya** - Functional-first web stack, including an HTTP finite state machine, built on top of OWIN](https://github.com/freya-fs/freya) 947 | * [**micron** - A minimalistic pure functional programming language](https://github.com/jonathanvdc/micron) 948 | * [**Lw** - is a general-purpose statically-typed functional language with advanced features.](https://github.com/alvisespano/Lw) 949 | * [**Streams** - A lightweight F#/C# library for efficient functional-style pipelines on streams of data](https://github.com/nessos/Streams) 950 | * [**Fable** - F# to JavaScript Compiler](https://github.com/fsprojects/Fable) 951 | * [**ReactFSharp** - Proof of concept demo implementing a React like declarative UI API for F# on top of RX](https://github.com/bordoley/ReactFSharp) 952 | * [**Juniper** - FRP (Functional Reactive Programming) for the Arduino and other microcontrollers](https://github.com/calebh/Juniper) 953 | 954 | ### [C#](https://github.com/dotnet/roslyn) 955 | 956 | *** 957 | * [**language-ext** - C# functional language extensions and 'Erlang like' concurrency system](https://github.com/louthy/language-ext) 958 | * [**functional.net** - Library of functions and list extensions for C#](https://github.com/jallen720/functional.net) 959 | * [**FuncSharp** - Functional programming in C#](https://github.com/siroky/FuncSharp) 960 | * [**monadsharp** - A collection of monads for C# that provide some functional programming flavor](https://github.com/kallanreed/monadsharp) 961 | * [**csharp-probability-monad** - A probabilistic programming framework for C#](https://github.com/joashc/csharp-probability-monad) 962 | * [**Ramda.NET** - Practical functional C# port from Ramda.js](https://github.com/sagifogel/Ramda.NET) 963 | 964 | ### [Swift](https://developer.apple.com/swift) 965 | 966 | *** 967 | * [**Swift for Windows** - is a free, open source tool that provide runtime environment for swift programming language to compile and run on Windows OS with graphical interface](https://swiftforwindows.codeplex.com/) 968 | * [**Dollar.swift** - A functional tool-belt for Swift Language similar to Lo-Dash or Underscore.js in Javascript](http://www.dollarswift.org) 969 | * [**Swiftz** - Functional programming in Swift](https://github.com/typelift/Swiftz) 970 | * [**LlamaKit** - Collection of must-have functional Swift tools](https://github.com/LlamaKit/LlamaKit) 971 | * [**Prelude** - Swift µframework of simple functional programming tools](https://github.com/robrix/Prelude) 972 | * [**Swiftx** - Functional data types and functions for any project](https://github.com/typelift/Swiftx) 973 | * [**Concurrent** - Functional Concurrency Primitives](https://github.com/typelift/Concurrent) 974 | * [**SINQ** - LINQ for Swift - Swift Integrated Query](https://github.com/slazyk/SINQ) 975 | * [**Argo** - Functional JSON parsing library for Swift](https://github.com/thoughtbot/Argo) 976 | * [**Interstellar** - Simple and lightweight Functional Reactive Coding in Swift for the rest of us](https://github.com/JensRavens/Interstellar) 977 | * [**Funky** - Functional programming tools and experiments in Swift](https://github.com/brynbellomy/Funky) 978 | * [**Functional** - A functional programming framework for Swift](https://github.com/broomburgo/Functional) 979 | * [**SwiftSequence** - A μframework of extensions for SequenceType in Swift 2.0, inspired by Python's itertools, Haskell's standard library, and other things](https://github.com/oisdk/SwiftSequence) 980 | 981 | ### [Python](https://www.python.org/) 982 | 983 | *** 984 | * [**fn.py** - Functional programming in Python: implementation of missing features to enjoy FP](https://github.com/kachayev/fn.py) 985 | * [**funcy** - A fancy and practical functional tools](https://github.com/Suor/funcy) 986 | * [**toolz** - A functional standard library for Python](https://github.com/pytoolz/toolz) 987 | * [**f** - Functional stuff for Python](https://github.com/igrishaev/f) 988 | * [**Coconut** - Simple, elegant, Pythonic functional programming](http://coconut-lang.org/) 989 | * [**pyMonet** - High abstract library for functional programming. Contains algebraic data structures known from Haskell or Scala](https://github.com/przemyslawjanpietrzak/pyMonet) 990 | 991 | ### [PHP](https://github.com/php/php-src) 992 | 993 | *** 994 | * [**functional-php** - Primitives for functional programming in PHP](https://github.com/lstrojny/functional-php) 995 | * [**Non-standard PHP library (NSPL)** - Compact functional programming oriented code and more](https://github.com/ihor/Nspl) 996 | * [**Pinq** - PHP Integrated Query, a real LINQ library for PHP](https://github.com/TimeToogo/Pinq) 997 | * [**YaLinqo** - Yet Another LINQ to Objects for PHP](https://github.com/Athari/YaLinqo) 998 | * [**ginq** - LINQ to Object inspired DSL for PHP](https://github.com/akanehara/ginq) 999 | * [**pramda** - Practical Functional Programming in PHP](https://github.com/kapolos/pramda) 1000 | * [**prelude** - Functional library for PHP](https://github.com/sergiors/prelude) 1001 | 1002 | ### [Rust](https://github.com/rust-lang/rust) 1003 | 1004 | *** 1005 | * [**elmesque** - An attempt at porting Elm's incredibly useful, purely functional std graphics modules](https://github.com/mitchmindtree/elmesque) 1006 | 1007 | ### [Julia](https://github.com/JuliaLang/julia) 1008 | 1009 | *** 1010 | * [**Lazy.jl** - Functional programming for Julia](https://github.com/one-more-minute/Lazy.jl) 1011 | * [**FunctionalCollections.jl** - Functional and persistent data structures for Julia](https://github.com/JuliaLang/FunctionalCollections.jl) 1012 | 1013 | ### [Go](https://github.com/golang/go) 1014 | 1015 | *** 1016 | * [**go-linq** - .NET LINQ-like query methods for Go](https://github.com/ahmetalpbalkan/go-linq) 1017 | * [**The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem](https://oden-lang.org/) 1018 | 1019 | ### [Haskell](https://www.haskell.org) 1020 | 1021 | *** 1022 | * [**futhark** - A data-parallel functional programming language](https://github.com/HIPERFIT/futhark) 1023 | * [**reflex** - Practical Functional Reactive Programming](https://github.com/reflex-frp/reflex) 1024 | * [**ghcvm** - A Haskell to JVM compiler that supports GHC Haskell](https://github.com/rahulmutt/ghcvm) 1025 | * [**ivorylang** - is an eDSL for safe systems programming. You can think of Ivory as a safer C, embedded in Haskell](http://ivorylang.org/index.html) 1026 | 1027 | ### [Elixir](https://github.com/elixir-lang/elixir) 1028 | 1029 | *** 1030 | 1031 | ### [Erlang](https://www.erlang.org) 1032 | 1033 | *** 1034 | * [**lfe** - Lisp Flavoured Erlang (LFE)](https://github.com/rvirding/lfe) 1035 | 1036 | ### [OCaml](https://ocaml.org/) 1037 | 1038 | *** 1039 | * [**bucklescript** - A backend for the OCaml compiler which emits JavaScript](https://github.com/bloomberg/bucklescript) 1040 | 1041 | ### [Racket](https://racket-lang.org/) 1042 | 1043 | *** 1044 | * [**hackett** - (Very) WIP implementation of a Haskell 98-like Lisp in Racket](https://github.com/lexi-lambda/hackett) 1045 | 1046 | ## Languages 1047 | 1048 | * [Lean](https://leanprover.github.io/) - Lean is a functional programming language that makes it easy to write correct and maintainable code. 1049 | * [Pyret](http://www.pyret.org/) - A programming language designed to serve as an outstanding choice for programming education while exploring the confluence of scripting and functional programming 1050 | * [Ela](http://elalang.net/) - A dynamic functional language 1051 | * [Eta](http://eta-lang.org/) - A powerful language for building scalable systems on the JVM 1052 | * [Koka](https://github.com/koka-lang/koka) - A function-oriented language with effect inference 1053 | * [Ditto](https://github.com/ditto/ditto) - A super kawaii dependently typed language for you! 1054 | * [F*](https://www.fstar-lang.org/) - (pronounced F star) An ML-like functional programming language aimed at program verification 1055 | * [Idris](http://www.idris-lang.org/) - A general purpose pure functional programming language with dependent types 1056 | * [Agda](https://github.com/agda/agda) - A dependently typed functional programming language 1057 | * [Coq](https://coq.inria.fr/) - A formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs 1058 | -------------------------------------------------------------------------------- /_haskell.md: -------------------------------------------------------------------------------- 1 | ### Haskell 2 | 3 | * [https://wiki.haskell.org/Fold](https://wiki.haskell.org/Fold) 4 | * [https://github.com/bitemyapp/learnhaskell](https://github.com/bitemyapp/learnhaskell) 5 | * [https://haskell-lang.org/](https://haskell-lang.org/) 6 | * [https://s3.amazonaws.com/haddock.stackage.org/lts-6.0/base-4.8.2.0/Control-Arrow.html#t:Arrow](https://s3.amazonaws.com/haddock.stackage.org/lts-6.0/base-4.8.2.0/Control-Arrow.html#t:Arrow) 7 | * [https://github.com/reflex-frp/reflex](https://github.com/reflex-frp/reflex) 8 | * [https://wiki.haskell.org/Monad](https://wiki.haskell.org/Monad) 9 | * [http://www.slideshare.net/goncharenko/functional-programming-by-ex](http://www.slideshare.net/goncharenko/functional-programming-by-ex) 10 | * [http://rsdn.ru/article/haskell/haskell_part2.xml#E1JAC](http://rsdn.ru/article/haskell/haskell_part2.xml#E1JAC) 11 | * [https://wiki.haskell.org/Ru/Monad](https://wiki.haskell.org/Ru/Monad) 12 | * [https://habrahabr.ru/post/96421/](https://habrahabr.ru/post/96421/) 13 | * [https://en.wikipedia.org/wiki/Monad_(functional_programming)](https://en.wikipedia.org/wiki/Monad_(functional_programming)) 14 | * [https://wiki.haskell.org/Blow_your_mind](https://wiki.haskell.org/Blow_your_mind) 15 | * [https://wiki.haskell.org/Haskell](https://wiki.haskell.org/Haskell) 16 | * [http://www.cantab.net/users/antoni.diller/haskell/haskell.html](http://www.cantab.net/users/antoni.diller/haskell/haskell.html) 17 | * [http://members.chello.nl/hjgtuyl/tourdemonad.html#filterM](http://members.chello.nl/hjgtuyl/tourdemonad.html#filterM) 18 | * [http://www.tutorialspoint.com/compile_haskell_online.php](http://www.tutorialspoint.com/compile_haskell_online.php) 19 | * [https://wiki.haskell.org/99_questions](https://wiki.haskell.org/99_questions) 20 | * [http://iportnov.blogspot.com/2010/10/haskell-monads.html](http://iportnov.blogspot.com/2010/10/haskell-monads.html) 21 | * [http://hub.darcs.net/ertes/netwire/browse/README.md](http://hub.darcs.net/ertes/netwire/browse/README.md) 22 | * [https://github.com/Teaspot-Studio/gore-and-ash](https://github.com/Teaspot-Studio/gore-and-ash) 23 | * [http://daniel-j-h.github.io/post/intuitive-monadic-bind-kleisli-composition/](http://daniel-j-h.github.io/post/intuitive-monadic-bind-kleisli-composition/) 24 | * [http://www.haskellforall.com/2012/08/the-category-design-pattern.html](http://www.haskellforall.com/2012/08/the-category-design-pattern.html) 25 | * [http://stackoverflow.com/questions/20165554/how-to-use-kleisli-arrows-with-monads](http://stackoverflow.com/questions/20165554/how-to-use-kleisli-arrows-with-monads) 26 | * [https://www.haskell.org/arrows/syntax.html](https://www.haskell.org/arrows/syntax.html) 27 | * [http://www.stephendiehl.com/posts/monads.html](http://www.stephendiehl.com/posts/monads.html) 28 | * [https://www.schoolofhaskell.com/user/Lkey/kleisli](https://www.schoolofhaskell.com/user/Lkey/kleisli) 29 | * [https://ghc.haskell.org/trac/ghc/wiki/ApplicativeDo](https://ghc.haskell.org/trac/ghc/wiki/ApplicativeDo) 30 | * [https://github.com/quchen/articles/blob/master/second_functor_law.md](https://github.com/quchen/articles/blob/master/second_functor_law.md) 31 | * [https://github.com/ivanperez-keera/Yampa](https://github.com/ivanperez-keera/Yampa) 32 | 33 | * [https://www.youtube.com/user/DrBartosz/videos](https://www.youtube.com/user/DrBartosz/videos) 34 | * [https://www.youtube.com/watch?v=ZhuHCtR3xq8](https://www.youtube.com/watch?v=ZhuHCtR3xq8) 35 | 36 | * [http://data.tmorris.net/talks/what-does-monad-mean/what-does-monad-mean/pdf/index.pdf](http://data.tmorris.net/talks/what-does-monad-mean/what-does-monad-mean/pdf/index.pdf) 37 | * [http://stackoverflow.com/questions/44965/what-is-a-monad/194207#194207](http://stackoverflow.com/questions/44965/what-is-a-monad/194207#194207) 38 | * [http://programming.diary.ru/p197462603.htm](http://programming.diary.ru/p197462603.htm) 39 | * [https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/profunctors](https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/profunctors) 40 | 41 | 42 | ### Purescript 43 | 44 | * [https://github.com/sharkdp/purescript-flare](https://github.com/sharkdp/purescript-flare) 45 | * [https://github.com/slamdata/purescript-halogen/blob/master/examples/counter/src/Main.purs](https://github.com/slamdata/purescript-halogen/blob/master/examples/counter/src/Main.purs) 46 | * [https://shark.fish/talk/#/](https://shark.fish/talk/#/) 47 | * [http://sharkdp.github.io/purescript-flaredoc/](http://sharkdp.github.io/purescript-flaredoc/) 48 | * [https://learnxinyminutes.com/docs/purescript/](https://learnxinyminutes.com/docs/purescript/) 49 | * [http://www.purescript.org/learn/getting-started/](http://www.purescript.org/learn/getting-started/) 50 | * [https://gist.github.com/paf31/8e9177b20ee920480fbc](https://gist.github.com/paf31/8e9177b20ee920480fbc) 51 | * [https://github.com/bkonkle/purescript-manifold](https://github.com/bkonkle/purescript-manifold) 52 | * [https://github.com/Podlas29/purescript-murph](https://github.com/Podlas29/purescript-murph) 53 | 54 | 55 | https://github.com/ekmett/zippers 56 | https://github.com/NICTA/lets-lens 57 | http://hackage.haskell.org/package/lens-tutorial-1.0.2/docs/Control-Lens-Tutorial.html 58 | https://github.com/aelve/microlens 59 | http://lambda-the-ultimate.org/node/4290#comment-65894 60 | https://www.reddit.com/r/haskell/comments/1g2g3s/falgebra_tutorial/ 61 | https://www.schoolofhaskell.com/user/bartosz/understanding-algebras 62 | https://mortberg.wordpress.com/2010/08/30/zn/ 63 | http://conal.net/blog/posts/more-beautiful-fold-zipping 64 | https://github.com/Gabriel439/slides/blob/master/munihac/foldmap.md 65 | https://www.stackage.org/haddock/lts-7.19/foldl-1.2.3/Control-Foldl.html 66 | https://crypto.stanford.edu/~blynn/haskell/hga.html 67 | https://jozefg.bitbucket.io/archive.html 68 | http://scalalaz.ru/series-11.html 69 | http://deni-ok.livejournal.com/7123.html 70 | http://deni-ok.livejournal.com/6909.html 71 | http://deni-ok.livejournal.com/8502.html 72 | http://deni-ok.livejournal.com/9375.html 73 | http://nponeccop.livejournal.com/546123.html 74 | https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/part-2 75 | http://squing.blogspot.ru/2008/11/beautiful-folding.html 76 | https://github.com/effectfully/prefolds 77 | https://github.com/haroldcarr/learn-haskell-coq-ml-etc/blob/master/haskell/book/Program_Design_by_Calculation-Oliveira/2015-05-LambdaConf/README.md 78 | http://bentnib.org/posts/2011-04-22-structural-recursion.html 79 | http://bentnib.org/posts/2011-04-28-folds-and-induction.html 80 | https://softwaremill.com/beautiful-folds-in-scala/ 81 | http://www.folone.info/blog/RecursionSchemes/ 82 | https://www.reddit.com/r/javascript/comments/5g4bmu/anamorphisms_in_javascript/dar183e/ 83 | http://raganwald.com/2016/11/30/anamorphisms-in-javascript.html 84 | https://gist.github.com/scott-christopher/c0e76689c40988ce4e08fca4fe97d7dd 85 | https://gist.github.com/YoEight/8106260 86 | https://gist.github.com/robrix/da6c6b61bdd0ee3e3b699a737bdd8169 87 | https://gist.github.com/liesen/9f3c2776d86887df279b 88 | https://gist.github.com/jtobin/bbb2070f6a63956401b3 89 | https://gist.github.com/yuga/ac639f542b64cd9cddf6 90 | https://gist.github.com/jonschoning/8775918 91 | 92 | https://github.com/t10471/haskell/blob/master/misc-example/algebra4.hs 93 | https://github.com/wataruY/sandbox/blob/master/haskell/junk/list_xxx_mor.hs 94 | http://lpaste.net/103930 95 | https://github.com/joshcc3/HaskellExperiments/blob/master/interestingTypes/RecSchemesExp.hs 96 | http://duplode.github.io/posts/whats-in-a-fold.html 97 | https://jyp.github.io/posts/controlled-fusion.html 98 | http://mpickering.github.io/posts/2016-09-16-motivating-foldable.html 99 | http://lpaste.net/103930 100 | https://gist.github.com/markandrus/6574505 101 | https://github.com/sayon/fp-cata-presentation/blob/master/presentation.pdf 102 | https://github.com/willtim/recursion-schemes/blob/master/slides-final.pdf 103 | https://github.com/jl-Jenning/recursion-schemes-in-DSL/blob/master/Report/new_report.pdf 104 | https://github.com/sellout/recursion-scheme-talk/blob/master/cheat%20sheet.pdf 105 | https://jozefg.bitbucket.io/posts/2013-11-09-iso-recursive-types.html 106 | https://www.reddit.com/r/haskell/comments/11tevy/from_listbased_recursion_schemes_to_generic_ones/ 107 | https://www.reddit.com/r/elm/comments/4zpz6u/rewriting_imperative_loops_in_elm_using_folds/ 108 | https://www.reddit.com/r/haskell/comments/3i9gjq/exploring_catamorphisms_and_apomorphisms/ 109 | http://d.hatena.ne.jp/KeisukeNakano/20090320/1237559049 110 | https://searchcode.com/file/11552091/libs/_old/greyfold/src/Data/GreyFold/Base/SequenceRecursion.hs 111 | http://hackage.haskell.org/package/category-extras-0.1/docs/Control-Recursion.html 112 | https://gist.github.com/YoEight/9710441 113 | https://github.com/colah/HaskSymb 114 | https://gist.github.com/oisdk/542e7d941e5e62fe3a6ac7321b01754e 115 | https://github.com/jto/validation 116 | http://jto.github.io/articles/typelevel-fix/ 117 | http://typelevel.org/blog/2014/04/14/fix.html 118 | https://tpolecat.github.io/presentations/sw2016/slides.htm 119 | https://www.slideshare.net/DaveCleaver1/flexible-data-representation 120 | https://dl.dropboxusercontent.com/u/828035/Computing/fold.html 121 | https://wiki2.org/en/F-coalgebra 122 | https://gist.github.com/Heimdell/09e24bef28d1c8fe8a19 123 | https://gist.github.com/Heimdell/bcd902d03bd2a0d2791d 124 | https://gist.github.com/holoed/399928af38d8a76205e3 125 | https://gist.github.com/raichoo/53ed5619988c0b4dd590 126 | https://gist.github.com/jonschoning/8797627 127 | https://gist.github.com/nikitaDanilenko/b5d582337a7bbbd9a4fb 128 | http://www.cs.toronto.edu/~trebla/personal/haskell/fix.xhtml 129 | http://www.parsonsmatt.org/2016/10/26/grokking_fix.html 130 | http://okmij.org/ftp/Computation/fixed-point-combinators.html 131 | https://wiki2.org/en/Initial_algebra 132 | https://github.com/technogeeky/pearl-sorting-with-bialgebras 133 | https://github.com/revnull/catamorphism-games 134 | https://github.com/haroldcarr/especially-haskell/blob/master/content/recursion-schemes/src/Z.hs -------------------------------------------------------------------------------- /fp.md: -------------------------------------------------------------------------------- 1 | * [https://github.com/pzavolinsky/elmx](https://github.com/pzavolinsky/elmx) 2 | * [https://github.com/parsonsmatt/purs-architecture-tutorial](https://github.com/parsonsmatt/purs-architecture-tutorial) 3 | * [https://github.com/agrafix/purescript-apparch](https://github.com/agrafix/purescript-apparch) 4 | * [https://github.com/rgrempel/purescript-elm](https://github.com/rgrempel/purescript-elm) 5 | * [https://github.com/philopon/purescript-todomvc](https://github.com/philopon/purescript-todomvc) 6 | * [https://github.com/brainrape/purescript-elm-basics](https://github.com/brainrape/purescript-elm-basics) 7 | * [https://github.com/gdotdesign/elm-ui](https://github.com/gdotdesign/elm-ui) 8 | * [https://github.com/celestial-ops/elm-ui](https://github.com/celestial-ops/elm-ui) 9 | * [https://gist.run/?id=da0af799da468b7ca70e](https://gist.run/?id=da0af799da468b7ca70e) 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /frp.md: -------------------------------------------------------------------------------- 1 | ### FRP in Purescript 2 | 3 | * [https://github.com/paf31/purescript-behaviors](https://github.com/paf31/purescript-behaviors) 4 | * [https://github.com/Podlas29/purescript-murph](https://github.com/Podlas29/purescript-murph) 5 | * [https://github.com/jasonzoladz/purescript-rx-state](https://github.com/jasonzoladz/purescript-rx-state) 6 | * [https://github.com/bkonkle/purescript-manifold](https://github.com/bkonkle/purescript-manifold) 7 | * [https://github.com/anttih/purescript-rx](https://github.com/anttih/purescript-rx) 8 | * [https://github.com/zudov/purescript-miniyampa](https://github.com/zudov/purescript-miniyampa) 9 | * [https://github.com/briancavalier/purelyst](https://github.com/briancavalier/purelyst) 10 | * [https://github.com/TylorS/Almost](https://github.com/TylorS/Almost) -------------------------------------------------------------------------------- /rsfa.md: -------------------------------------------------------------------------------- 1 | ## Recursion schemes, Recursion, F-{Co}algebras 2 | 3 | #### Articles, Resources 4 | 5 | * [Reflecting On Incremental Folds](http://comonad.com/reader/2009/incremental-folds) 6 | * [Elgot (Co)Algebras](http://comonad.com/reader/2008/elgot-coalgebras) 7 | * [Generatingfunctorology](http://comonad.com/reader/2008/generatingfunctorology) 8 | * [Dynamorphisms as Chronomorphisms](http://comonad.com/reader/2008/dynamorphisms-as-chronomorphisms) 9 | * [Unnatural Transformations](http://comonad.com/reader/2008/unnatural-transformations) 10 | * [Generalized Hylomorphisms](http://comonad.com/reader/2008/generalized-hylomorphisms) 11 | * [Rotten Bananas](http://comonad.com/reader/2008/rotten-bananas) 12 | * [Higher-Order Abstract Syntax à la Carte](http://comonad.com/reader/2008/higher-order-abstract-syntax-a-la-carte) 13 | * [Catamorphisms](https://www.schoolofhaskell.com/user/edwardk/recursion-schemes/catamorphisms) 14 | * [Hylomorphism(その2)](http://d.hatena.ne.jp/m-a-o/20061117/p1) 15 | * [Recursion schemeとHaskell](https://qiita.com/fumieval/items/01c7d7f93e261f843ef5) 16 | * [Compositional data types](http://www.itu.dk/~paba/modularity/pubs/talks/bahr11wgp.html) 17 | * [passy/awesome-recursion-schemes](https://github.com/passy/awesome-recursion-schemes) 18 | * [Recursion Schemes](https://notepad.mmakowski.com/Recursion%20Schemes?revision=1a0cbb1a636e157a26f6a7175e91328cf26a2573) 19 | * [Hylomorphisms in Haskell](https://ulissesaraujo.wordpress.com/2009/04/09/hylomorphisms-in-haskell/) 20 | * [More Hylomorphisms in Haskell](https://ulissesaraujo.wordpress.com/2009/04/09/more-hylomorphisms-in-haskell/) 21 | * [(Cata|Ana|Hylo|Para)morphisms](http://blog.nonowarn.jp/post/161397967/cata-ana-hylo-paramorphisms) 22 | * [Dynamorphism 〜 Haskellでも動的計画法がしたい! 〜](http://titech-ssr.blog.jp/archives/1047835805.html) 23 | * [You Can’t Make an Algebra without Breaking a Few Eggs](https://bartoszmilewski.com/2014/01/28/you-cant-make-an-algebra-without-breaking-a-few-eggs/) 24 | * [Understanding Algebras](https://www.schoolofhaskell.com/user/bartosz/understanding-algebras) 25 | * [Constructions on Typeclasses, Part 1: F-Algebras](https://lukepalmer.wordpress.com/2013/03/12/constructions-on-typeclasses-part-1-f-algebras/) 26 | * [Type-level Fix and generic folds](http://mainisusuallyafunction.blogspot.com/2010/12/type-level-fix-and-generic-folds.html) 27 | * [Don't fear the cat-amorphism (nor the hylomorphism)](http://fho.f12n.de/posts/2014-05-07-dont-fear-the-cat.html) 28 | * [Grokking recursion-scheme: Part 1](https://jozefg.bitbucket.io/posts/2014-05-19-like-recursion-but-cooler.html) 29 | * [Grokking recursion-schemes: Part 2](https://jozefg.bitbucket.io/posts/2014-06-14-like-recursion-but-cooler-2.html) 30 | * [Fixpoints and Iso-recursive Types](https://jozefg.bitbucket.io/posts/2013-11-09-iso-recursive-types.html) 31 | * [Functors and Recursion](https://jozefg.bitbucket.io/posts/2014-11-19-recursion.html) 32 | * [Origami](https://www.cs.ox.ac.uk/jeremy.gibbons/publications/origami.pdf) 33 | * [Catamorphisms in 15 Minutes!](http://chrislambda.github.io/blog/2014/01/30/catamorphisms-in-15-minutes/) 34 | * [A non-recursive sorting algorithm](http://haskellexists.blogspot.com/2014/09/a-non-recursive-sorting-algorithm.html) 35 | * [PHOAS For Free](https://www.schoolofhaskell.com/user/edwardk/phoas) 36 | * [Moore for Less](https://www.schoolofhaskell.com/user/edwardk/moore/for-less) 37 | * [Algebras and Coalgebras](https://www.schoolofhaskell.com/user/tel/algebras-coalgebras) 38 | * [Feval: F-Algebras for expression evaluation](http://www.burz.io/2014/06/15/feval.html) 39 | * [Recursion Schemes: A Field Guide (Redux)](http://comonad.com/reader/2009/recursion-schemes/) 40 | * [Rotating Squares](https://jtobin.io/rotating-squares) 41 | * [Promorphisms, Pre and Post](https://jtobin.io/promorphisms-pre-post) 42 | * [Recursive Stochastic Processes](https://jtobin.io/recursive-stochastic-processes) 43 | * [Time Traveling Recursion Schemes](https://jtobin.io/time-traveling-recursion) 44 | * [Monadic Recursion Schemes](https://jtobin.io/monadic-recursion-schemes) 45 | * [Sorting Slower with Style](https://jtobin.io/sorting-slower-with-style) 46 | * [Yo Dawg We Heard You Like Derivatives](https://jtobin.io/ad-via-recursion-schemes) 47 | * [A Tour of Some Useful Recursive Types](https://jtobin.io/tour-of-some-recursive-types) 48 | * [Sorting with Style](https://jtobin.io/sorting-with-style) 49 | * [Practical Recursion Schemes](https://jtobin.io/practical-recursion-schemes) 50 | * [Guide to morphism](http://b-studios.de/assets/guide-to-morphisms.pdf) 51 | * [Bananas, Lenses, Envelopes, and Barbed Wire](http://etymon.blogspot.com/2004/08/bananas-lenses-envelopes-and-barbed.html) 52 | * [Recursion Schemes (wiki)](https://en.wikipedia.org/wiki/Category:Recursion_schemes) 53 | * [Understanding F-Algebras](https://bartoszmilewski.com/2013/06/10/understanding-f-algebras/) 54 | * [Zygohistomorphic prepromorphisms](https://wiki.haskell.org/Zygohistomorphic_prepromorphisms) 55 | * [An Introduction to Recursion Schemes](http://blog.sumtypeofway.com/an-introduction-to-recursion-schemes/) 56 | * [Recursion Schemes, Part II: A Mob of Morphisms](http://blog.sumtypeofway.com/recursion-schemes-part-2/) 57 | * [Recursion Schemes, Part III: Folds in Context](http://blog.sumtypeofway.com/recursion-schemes-part-iii-folds-in-context/) 58 | * [Recursion Schemes, Part IV: Time is of the Essence](http://blog.sumtypeofway.com/recursion-schemes-part-iv-time-is-of-the-essence/) 59 | * [Hylomorphisms and treesort](http://www.kovach.me/posts/2014-04-30-hylomorphisms-and-treesort.html) 60 | * [Anamorphisms in JavaScript](http://raganwald.com/2016/11/30/anamorphisms-in-javascript.html) 61 | * [Bananas, Lenses, Envelopes and Barbed Wire A Translation Guide](http://blog.ezyang.com/2010/05/bananas-lenses-envelopes-and-barbed-wire-a-translation-guide/) 62 | * [Пределы выразительности свёрток](http://fprog.ru/2010/issue4/vitaly-bragilevsky-limits-of-folds-expressiveness/) 63 | * [Why Recursive Data Structures?](http://raganwald.com/2016/12/27/recursive-data-structures.html) 64 | * [F-algebras](https://bartoszmilewski.com/2017/02/28/f-algebras/) 65 | * [CheatSheet](https://github.com/sellout/recursion-scheme-talk/blob/master/cheat%20sheet.pdf) 66 | * [F-algebra(wiki)](https://wiki2.org/en/F-algebra) 67 | * [Anamorphism Example](https://idontgetoutmuch.wordpress.com/2011/11/12/anamorphism-example/) 68 | * [Least fixed point](https://wiki2.org/en/Least_fixed_point) 69 | * [data Mu f = In (f (Mu f))](http://blog.plover.com/prog/springschool95-2.html) 70 | * [Fixed point (mathematics)](https://wiki2.org/en/Fixed_point_(mathematics)) 71 | * [Fixed point](https://ncatlab.org/nlab/show/fixed+point) 72 | * [Fixed-point combinator](https://wiki2.org/en/Fixed-point_combinator) 73 | * [Initial algebra](https://wiki2.org/en/Initial_algebra) 74 | * [Категориальные типы](http://anton-k.github.io/ru-haskell-book/book/16.html) 75 | * [Структурная рекурсия](http://anton-k.github.io/ru-haskell-book/book/12.html) 76 | * [A Classy Approach to Recursion](http://fieldstrength.org/posts/2016-10-11-Classy-Recursion.html) 77 | * [Fixing GADTs](http://www.timphilipwilliams.com/posts/2013-01-16-fixing-gadts.html) 78 | * [Reasoning about Stream Processing with Effects](http://bentnib.org/posts/2012-01-06-streams.html) 79 | * [Mutual Recursion in Final Encoding](https://aherrmann.github.io/programming/2016/05/28/mutual-recursion-in-final-encoding/) 80 | * [Recursion Schemes](https://notepad.mmakowski.com/Recursion%20Schemes?revision=1a0cbb1a636e157a26f6a7175e91328cf26a2573) 81 | * [What's in a Fold: The Basic Catamorphism in recursion-schemes](https://duplode.github.io/posts/whats-in-a-fold.html) 82 | * [Introduction to Recursion Schemes with Matryoshka](http://akmetiuk.com/posts/2017-03-10-matryoshka-intro.html) 83 | * [Encoding for least fixpoint](http://haskell-cafe.haskell.narkive.com/47SvrSB3/encoding-for-least-fixpoint) 84 | * [A non-recursive sorting algorithm](http://haskellexists.blogspot.com.tr/2014/09/a-non-recursive-sorting-algorithm.html) 85 | * [Type-level Fix and generic folds](http://mainisusuallyafunction.blogspot.com.tr/2010/12/type-level-fix-and-generic-folds.html) 86 | * [Recursion Schemes and Functors](https://www.interact-sw.co.uk/iangblog/2014/03/20/recursion-schemes-functors) 87 | * [Fun With PolyKinds: Polykinded Folds](http://blog.functorial.com/posts/2012-02-02-Polykinded-Folds.html) 88 | * [Про F-Алгебры](https://medium.com/@Nik_Yurchenko/%D0%BF%D1%80%D0%BE-f-%D0%B0%D0%BB%D0%B3%D0%B5%D0%B1%D1%80%D1%8B-b00706fb6c7f) 89 | * [слово о трансдюсерах](http://thedeemon.livejournal.com/87320.html) 90 | * [Mixing Supercompilers and Recursion Using Elgot Algebras](http://blog.vmchale.com/article/elgot) 91 | * [Computing Catalan Numbers Using Dynamorphisms](http://blog.vmchale.com/article/dynamorphisms-idris) 92 | * [Review: Bananas, Lenses, Envelopes and Barbed Wire](http://reasonablypolymorphic.com/blog/recursion-schemes) 93 | * [Metamorphisms](https://patternsinfp.wordpress.com/2017/10/04/metamorphisms/) 94 | * [recursion](https://github.com/jozefg/blog/blob/master/posts/2014-11-19-recursion.md) 95 | * [Programming with bananas and barbed wire. Part 1](https://monad.cat/posts/2016-05-10-barbed-wire.html) 96 | * [Category Theory Helpline](https://oleksandrmanzyuk.wordpress.com/2012/12/01/category-theory-helpline/) 97 | 98 | #### Talks, Presentations 99 | 100 | * [willtim/recursion-schemes](https://github.com/willtim/recursion-schemes) 101 | * [sellout/recursion-scheme-talk](https://github.com/sellout/recursion-scheme-talk) 102 | * [Going bananas with recursion schemes for fixed point data types](https://www.slideshare.net/paulszulc/going-bananas-with-recursion-schemes-for-fixed-point-data-types) 103 | * [Deriving Modular Recursion Schemes from Tree Automata](http://www.itu.dk/people/paba/modularity/pubs/talks/bahr12uucs.html) 104 | * [F-Algebras or: How I Learned to Stop Worrying and Love the Type System](https://github.com/burz/presentations/blob/master/f-algebras/slides.md) 105 | * [Recursion Schemes - Why, How and More](https://github.com/sergv/kievfprog-2017-november/blob/master/Talk.pdf) 106 | * [Peeling The Banana: Recursion schemes from first principles](http://slides.com/zainabali_/peeling_the_banana) 107 | * [A talk given at FP-Syd about F-algebras with respect to Haskell](https://github.com/christian-marie/f-algebra-talk/blob/master/slides.pdf) 108 | 109 | #### Videos 110 | 111 | * [Recursion Schemes](https://www.youtube.com/watch?v=Zw9KeP3OzpU) 112 | * [Programming with algebras - Bartosz Milewski](https://www.youtube.com/watch?v=-98fR9VmLbQ) 113 | * [Peeling the Banana: Recursion Schemes from First Principles - Zainab Ali](https://www.youtube.com/watch?v=XZ9nPZbaYfE) 114 | * [scala.bythebay.io: Greg Pfeil, This programmer modeled his code after wooden nesting dolls](https://www.youtube.com/watch?v=lQdpXqD7Uic) 115 | * [Recursion: Where Functional Programming Hits Bottom - Greg Pfeil](https://www.youtube.com/watch?v=24UoRaoKLjM) 116 | * [Going bananas with recursion schemes for fixed point data types - Paweł Szulc (Lambda Days 2017)](https://www.youtube.com/watch?v=IlvJnkWH6CA) 117 | * [Jean Remi Desjardins: A Gentle Introduction to Recursion Schemes - λC 2016](https://www.youtube.com/watch?v=i5A2Amfcir8) 118 | * [Unifying Structured Recursion Schemes](https://www.youtube.com/watch?v=9EGYSb9vov8) 119 | * [Introduction to Recursion Schemes – Ratan Sebastian](https://www.youtube.com/watch?v=6m0J_XllHqQ) 120 | * [Dániel Berényi: Selected use cases of structured recursion schemes](https://www.youtube.com/watch?v=0Od_smjZ_jU) 121 | * [Pawel Szulc - Going bananas with recursion schemes for fixed point data types](https://www.youtube.com/watch?v=_Gfnis1cVNM) 122 | * [ScalaMatsuri day2 A-3 Recursion schemes in Scala - Paweł Szulc](https://www.youtube.com/watch?v=UmwV5JGTJz0) 123 | * [Efficient Nanopass Compilers using Cats and Matryoshka - Greg Pfeil](https://www.youtube.com/watch?v=TQIHRBXM75E) 124 | 125 | 126 | 127 | #### Examples, Repos 128 | 129 | * [jkoppel/compstrat](https://github.com/jkoppel/compstrat) 130 | * [matt-noonan/fixie](https://github.com/matt-noonan/fixie) 131 | * [kosmikus/multirec](https://github.com/kosmikus/multirec) 132 | * [fixplate](https://hackage.haskell.org/package/fixplate) 133 | * [matt-noonan/functor-friends](https://github.com/matt-noonan/functor-friends) 134 | * [patrickt/recschemes - Example code for my blog series on recursion schemes](https://github.com/patrickt/recschemes) 135 | * [isovector/lets-recurse](https://github.com/isovector/lets-recurse) 136 | * [JD95/recursion-scheme-examples](https://github.com/JD95/recursion-scheme-examples) 137 | * [compdata](https://hackage.haskell.org/package/compdata) 138 | * [vmchale/recursion_schemes](https://github.com/vmchale/recursion_schemes) 139 | * [sellout/Iaia](https://github.com/sellout/Iaia) 140 | * [sellout/yaya](https://github.com/sellout/yaya) 141 | * [mmisamore/lfp-recursion-schemes](https://github.com/mmisamore/lfp-recursion-schemes) 142 | * [oisdk/recursion-schemes-extras](https://github.com/oisdk/recursion-schemes-extras) 143 | * [romac/lfc-haskell](https://github.com/romac/lfc-haskell) 144 | * [DrBoolean/excursion](https://github.com/DrBoolean/excursion) 145 | * [kosmikus/bc7d29cdbdcdae699eab](https://gist.github.com/kosmikus/bc7d29cdbdcdae699eab) 146 | * [Feval - Evaluation using F-algebras](https://github.com/burz/Feval) 147 | * [The pointless-haskell package](https://hackage.haskell.org/package/pointless-haskell) 148 | * [The data-fix package](https://hackage.haskell.org/package/data-fix) 149 | * [The recursion-schemes package](https://hackage.haskell.org/package/recursion-schemes) 150 | * [RamdaJS reduceBy() in Haskell using recursion-schemes](http://stackoverflow.com/questions/42148749/ramdajs-reduceby-in-haskell-using-recursion-schemes) 151 | * [purescript-matryoshka - Generalized folds, unfolds, and traversals for fixed point data structures](https://github.com/slamdata/purescript-matryoshka) 152 | * [gpif-datakinds - Generic Programming with Indexed Functors using DataKinds -- (co)recursion schemes for "free"!](https://github.com/pbl64k/gpif-datakinds) 153 | * [fixalgs - Fixed points and F-(co)algebras](https://github.com/bhamrick/fixalgs) 154 | * [algebraic-classes - Conversions between algebraic classes and F-algebras](https://github.com/sjoerdvisscher/algebraic-classes) 155 | * [Algebra - Study and implementations of F-Algebras and Bird-Meertens formalism](https://github.com/Crazycolorz5/Algebra) 156 | * [Examples of histomorphisms in Haskell](http://stackoverflow.com/questions/24884475/examples-of-histomorphisms-in-haskell/24892711#24892711) 157 | * [histoexample - quick example of how to use a histomorphism to solve a dynamic programming problem](https://github.com/benjumanji/histoexample) 158 | * [Coalgebra - Some simple things to help me with my homework and to play around with Haskell](https://github.com/Jaxan/Coalgebra) 159 | * [Generalized recursion schemes and traversals for Scala](https://github.com/slamdata/matryoshka) 160 | * [A couple of quick questions about recursion-schemes](https://www.reddit.com/r/haskell/comments/3q0w7a/a_couple_of_quick_questions_about_recursionschemes/) 161 | * [recur v1.0 :provide recursion scheme combinators for Scala](https://github.com/MiloXia/recur) 162 | * [Recursion.hs](https://www.eyrie.org/~zednenem/2004/hsce/Control/Recursion.hs) 163 | * [chronomorphisms](https://gist.github.com/danidiaz/e5debcaf531838eb6e2afd3ef3b34d60) 164 | * [katalyst - Kotlin recursion schemes with Kategory](https://github.com/aedans/katalyst) --------------------------------------------------------------------------------