└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Learning resources for functional programming 2 | 3 | ## Fundamentals 4 | 5 | * [SICP](https://mitpress.mit.edu/sicp/full-text/book/book.html) 6 | * [The little schemer](https://mitpress.mit.edu/books/little-schemer) 7 | * [Mostly adequate guide to FP](https://mostly-adequate.gitbooks.io/mostly-adequate-guide/) 8 | * [Lisp in Small Pieces](https://www.amazon.com/Lisp-Small-Pieces-Christian-Queinnec/dp/0521545668) 9 | * [ML for the Working Programmer](http://www.cl.cam.ac.uk/~lp15/MLbook/) 10 | * [Algorithms: A Functional Programming Approach](https://www.iro.umontreal.ca/~lapalme/Algorithms-functional.html) 11 | * [Modern Compiler Implementation in ML](https://www.amazon.com/Modern-Compiler-Implementation-Andrew-Appel/dp/0521607647) 12 | * [Types and Programming Languages](https://www.cis.upenn.edu/~bcpierce/tapl/) 13 | 14 | ## Material to help understand more advanced concepts 15 | 16 | * [Concepts, Techniques, and Models of Computer Programming](https://mitpress.mit.edu/books/concepts-techniques-and-models-computer-programming) 17 | * [Denotational Semantics](https://www.cs.colorado.edu/~bec/courses/csci5535/reading/densem.pdf) 18 | * [Category Theory for Programmers](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/) ([unofficial pdf version](https://github.com/hmemcpy/milewski-ctfp-pdf)) ([video lectures](https://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_)) 19 | 20 | ## Papers 21 | 22 | * [Bibliography of Scheme-related Research](http://library.readscheme.org) 23 | * [Parsec: Direct Style Monadic Parser Combinators For The Real World](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/parsec-paper-letter.pdf) 24 | * [Prettier printer](https://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf) 25 | * [Monoids: Theme and Variations (Functional Pearl)](http://ozark.hendrix.edu/~yorgey/pub/monoid-pearl.pdf) 26 | * Zippers — [The Derivative of a Regular Type is its Type of One-Hole Contexts](http://strictlypositive.org/diff.pdf) 27 | * [Datatype-Generic Programming](http://www.cs.ox.ac.uk/jeremy.gibbons/publications/dgp.pdf) 28 | * [Functional unparsing](http://www.brics.dk/RS/98/12/BRICS-RS-98-12.pdf) 29 | * [Data types a la carte](http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf) 30 | * [Applicative programming with effects](http://www.staff.city.ac.uk/~ross/papers/Applicative.pdf) 31 | 32 | 33 | --------------------------------------------------------------------------------