1 line
No EOL
16 KiB
JSON
1 line
No EOL
16 KiB
JSON
{"slug": "lucasviola--awesome-functional-programming", "title": "Awesome Functional Programming", "description": ":alien: A curated list of functional programming resources such as blog posts, communities, discussion topics, wikis and more.", "github_url": "https://github.com/lucasviola/awesome-functional-programming", "stars": "929", "tag": "Computer Science", "entry_count": 84, "subcategory_count": 14, "subcategories": [{"name": "Table of Contents", "parent": "", "entries": [{"name": "Blog Posts", "url": "#blog-posts", "description": ""}, {"name": "Papers", "url": "#papers", "description": ""}, {"name": "Wikis", "url": "#wikis", "description": ""}, {"name": "Books", "url": "#books", "description": ""}, {"name": "Communities", "url": "#communities", "description": ""}, {"name": "Discussions", "url": "#discussions-quora-stack-overflow-reddit-etc", "description": ""}, {"name": "Videos", "url": "#videos", "description": ""}, {"name": "Lectures", "url": "#lectures", "description": ""}, {"name": "Tools", "url": "#tools", "description": ""}, {"name": "Repos", "url": "#repos", "description": ""}, {"name": "People", "url": "#people", "description": ""}]}, {"name": "Blog posts", "parent": "Table of Contents", "entries": [{"name": "Personal thoughts on the current functional programming bandwagon", "url": "http://www.akitaonrails.com/2015/10/28/personal-thoughts-on-the-current-functional-programming-bandwagon", "description": ""}, {"name": "A Monad in Practicality - Controlling Time", "url": "http://robotlolita.me/2014/03/20/a-monad-in-practicality-controlling-time.html", "description": ""}, {"name": "A Monad in Practicality - First Class Failures", "url": "http://robotlolita.me/2013/12/08/a-monad-in-practicality-first-class-failures.html", "description": ""}, {"name": "How to desugar Haskell Code", "url": "http://www.haskellforall.com/2014/10/how-to-desugar-haskell-code.html", "description": ""}, {"name": "Functors, Applicatives, And Monads In Pictures", "url": "http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html", "description": ""}, {"name": "Monads Made Difficult", "url": "http://www.stephendiehl.com/posts/monads.html", "description": ""}, {"name": "Your easy guide to Monads, Applicatives, & Functors", "url": "https://medium.com/@lettier/your-easy-guide-to-monads-applicatives-functors-862048d61610", "description": ""}, {"name": "Async Streams in C#", "url": "https://freecontent.manning.com/async-streams-in-c/", "description": ""}, {"name": "How to leverage functional programming in Kotlin to write better, cleaner code", "url": "https://doordash.engineering/2022/03/22/how-to-leverage-functional-programming-in-kotlin-to-write-better-cleaner-code/", "description": ""}]}, {"name": "Papers", "parent": "Table of Contents", "entries": [{"name": "Tradeoffs between Unique Types and Monads", "url": "http://lambda-the-ultimate.org/node/1180", "description": ""}, {"name": "The implementation of Functional Programming Languages", "url": "http://research.microsoft.com/en-us/um/people/simonpj/papers/slpj-book-1987/start.htm", "description": "A paper by Simon Peyton Jones"}, {"name": "Sound and Decidable Type Inference for Functional Dependencies", "url": "http://research.microsoft.com/en-us/um/people/simonpj/papers/fd-chr/esop04.pdf", "description": "Another very famous paper on Type Inference by the main creator of Haskell and GHC"}, {"name": "Template Meta-Programming for Haskell", "url": "http://research.microsoft.com/en-us/um/people/simonpj/papers/meta-haskell/meta-haskell.pdf", "description": "Paper about generating code at compile-time in Haskell"}, {"name": "Why Functional Programming Matters", "url": "http://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf", "description": ""}, {"name": "From Higher-Order Logic to Haskell: There and Back Again", "url": "http://isabelle.in.tum.de/~haftmann/pdf/from_hol_to_haskell_haftmann.pdf", "description": ""}, {"name": "Translating Haskell to Isabelle", "url": "http://es.cs.uni-kl.de/events/TPHOLs-2007/proceedings/B-178.pdf", "description": ""}]}, {"name": "Wikis", "parent": "Table of Contents", "entries": [{"name": "nLab", "url": "http://ncatlab.org/nlab/show/HomePage", "description": "A wiki-lab with articles, discussion and tools from the point of view of category theory, which is the main math behind FP."}, {"name": "Haskell/Category Theory", "url": "https://en.wikibooks.org/wiki/Haskell/Category_theory", "description": "A good overview on Category Theory applied to Haskell from Wikibooks."}, {"name": "Haskell Wiki", "url": "https://wiki.haskell.org/Haskell", "description": ""}]}, {"name": "Books", "parent": "Table of Contents", "entries": [{"name": "Learn you a Haskell", "url": "http://learnyouahaskell.com/", "description": "Book, but you can read it online for free as well. Very beginner friendly."}, {"name": "The Little Prover", "url": "https://books.google.com.br/books?id=I9E_CgAAQBAJ\\&pg=PR13#v=onepage\\&q\\&f=false", "description": "Talks about"}, {"name": "Isabelle/HOL - A Proof Assistant for Higher-Order Logic", "url": "http://isabelle.in.tum.de/doc/tutorial.pdf", "description": "A Book on implementing logical formalisms in Isabelle/HOL."}, {"name": "The Little MLer", "url": "http://www.ccs.neu.edu/home/matthias/BTML/", "description": "A book focused on teaching types, recursive thinking and other important subjects in Standard ML."}, {"name": "Introduction to Programming using SML", "url": "http://catalogue.pearsoned.co.uk/educator/product/Introduction-to-Programming-using-SML/9780201398205.page", "description": "Introduces you to programming design in a very mathematical way."}, {"name": "How to Design Programs", "url": "http://www.htdp.org/", "description": ""}, {"name": "Introduction to Functional Programming", "url": "http://www.amazon.com/Introduction-Functional-Programming-International-Computing/dp/0134841891", "description": ""}, {"name": "Haskell in Depth", "url": "https://www.manning.com/books/haskell-in-depth", "description": "the perfect second book on Haskell which dives into examples and application scenarios designed to teach how Haskell works and how to apply it correctly."}, {"name": "Grokking Simplicity: Taming complex software with functional thinking", "url": "https://www.manning.com/books/grokking-simplicity", "description": "Teaches functional programming from first principles using real-world scenarios."}, {"name": "Functional Programming in Scala, Second Edition", "url": "https://www.manning.com/books/functional-programming-in-scala-second-edition", "description": "International bestseller revised with new exercises, annotations, and full coverage of Scala 3."}, {"name": "Functional Programming in C#, Second Edition", "url": "https://www.manning.com/books/functional-programming-in-c-sharp-second-edition", "description": "Real world examples and practical techniques for functional programming in C#."}, {"name": "Grokking Functional Programming", "url": "https://www.manning.com/books/grokking-functional-programming", "description": "Introduction to functional programming."}, {"name": "Functional Programming in Kotlin", "url": "https://www.manning.com/books/functional-programming-in-kotlin", "description": "Master techniques and concepts of functional programming to deliver safer, simpler, and more effective Kotlin code."}, {"name": "Functional Design and Architecture", "url": "https://www.manning.com/books/functional-design-and-architecture", "description": "Design patterns and architectures for building production quality applications using functional programming, with examples in Haskell and other FP languages."}, {"name": "Haskell Bookcamp", "url": "https://www.manning.com/books/haskell-bookcamp", "description": "In this book, you’ll get practical experience writing Haskell code and applying functional programming to actual development challenges."}, {"name": "Mastering Functional Programming", "url": "https://www.perlego.com/book/800653/mastering-functional-programming-functional-techniques-for-sequential-and-parallel-programming-with-scala-pdf", "description": "If you are from an imperative and OOP background, this book will guide you through the world of functional programming, irrespective of which programming language you use."}, {"name": "Jax in Action", "url": "https://www.manning.com/books/jax-in-action", "description": "A book about The JAX numerical computing library."}, {"name": "Learn PowerShell Scritping in a Month of Lunches", "url": "https://www.manning.com/books/learn-powershell-scripting-in-a-month-of-lunches-second-edition", "description": "Automate complex tasks and processes with PowerShell scripts."}, {"name": "F# in Action", "url": "https://www.manning.com/books/f-sharp-in-action", "description": "Book about practical F# development skills needed to create professional applications."}, {"name": "Elixir in Action, Third Edition", "url": "https://www.manning.com/books/elixir-in-action-third-edition", "description": "Fully updated to Elixir 1.14, this authoritative bestseller reveals how Elixir tackles problems of scalability, fault tolerance, and high availability."}]}, {"name": "Communities", "parent": "Table of Contents", "entries": [{"name": "Lambda the Ultimate", "url": "http://lambda-the-ultimate.org/", "description": "Community focused on discussing researches, papers"}, {"name": "FP Complete", "url": "https://www.fpcomplete.com/", "description": "Community focused on helping companies and students on learning and implementing Functional Programming in Haskell. Hosters of one of the most famous Haskell learning centers: [School of Haskell](https://www.schoolofhaskell.com/school)"}, {"name": "Haskellers", "url": "http://www.haskellers.com/", "description": "The meeting point for Haskell Programmers"}, {"name": "ElixirLangMoscow", "url": "http://elixir-lang.moscow/", "description": "Russian Elixir community"}]}, {"name": "Discussions (Quora, Stack Overflow, Reddit, etc)", "parent": "Table of Contents", "entries": [{"name": "Why dont more programmers use Haskell", "url": "https://www.quora.com/Why-dont-more-programmers-use-Haskell", "description": ""}, {"name": "Hidden complexities of tail-call/tail-recursion optimization", "url": "http://lambda-the-ultimate.org/classic/message1532.html", "description": ""}]}, {"name": "Videos", "parent": "Table of Contents", "entries": [{"name": "Dont fear the Monad", "url": "https://www.youtube.com/watch?v=ZhuHCtR3xq8", "description": "Explanation on"}, {"name": "Haskell is useless", "url": "https://www.youtube.com/watch?v=iSmkqocn0oQ", "description": "Simon Peyton Jones being"}, {"name": "Brian Beckman: The Zen of Stateless State", "url": "https://www.youtube.com/watch?v=XxzzJiXHOJs", "description": ""}, {"name": "Erik Meijer: Functional Programming", "url": "https://www.youtube.com/watch?v=z0N1aZ6SnBk", "description": ""}, {"name": "Scala Monads: Declutter Your Code With Monadic Design", "url": "https://www.youtube.com/watch?v=Mw_Jnn_Y5iA", "description": ""}, {"name": "Philip Wadler and Erik Meijer: On Programming Language Theory and Practice", "url": "https://www.youtube.com/watch?v=9SBR_SnrEiI", "description": ""}, {"name": "Kotlin for Android & Java Developers", "url": "https://www.manning.com/livevideo/kotlin-for-android-and-java-developers", "description": "LiveVideo course about Kotlin: functional programming, object orientation and building an Android app in Kotlin."}, {"name": "Do we really need OOD and FDD?", "url": "https://www.youtube.com/watch?v=KW9U6HMKEgk", "description": "Functional Declarative Design (FDD) opposed to Object-Oriented Design (OOD"}, {"name": "Functional Programming with TypeScript", "url": "https://www.youtube.com/playlist?list=PLuPevXgCPUIMbCxBEnc1dNwboH6e2ImQo", "description": "Discover functional programming with Typescript and create a library like fp-ts alongside Sahand Javid in this beginner-friendly YouTube playlist."}]}, {"name": "Lectures", "parent": "Table of Contents", "entries": [{"name": "C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals", "url": "https://www.youtube.com/playlist?list=PLTA0Ta9Qyspa5Nayx0VCHj5AHQJqp1clD", "description": "Series of Lectures from one of the creators of Haskell"}, {"name": "Adventure with types in Haskell - Simon Peyton Jones", "url": "https://www.youtube.com/watch?v=6COvD8oynmI\\&list=RD6COvD8oynmI#t=0", "description": "Lectures about Haskells strong Type System by Simon Peyton Jones."}, {"name": "The Algebra of Algebraic Data Types", "url": "https://www.youtube.com/watch?v=YScIPA8RbVE", "description": "Very good explanation"}]}, {"name": "Platforms", "parent": "Table of Contents", "entries": []}, {"name": "Tools", "parent": "Table of Contents", "entries": [{"name": "Isabelle/HOL", "url": "https://www.cl.cam.ac.uk/research/hvg/Isabelle/", "description": "Generic proof assistant based on Higher Order Logic"}]}, {"name": "Repos", "parent": "Table of Contents", "entries": [{"name": "Idris Koans", "url": "https://github.com/idris-hackers/idris-koans", "description": "Project for teaching Idris. A General Purpose Functional Programming with Dependent Types", "stars": "176"}, {"name": "Functional Javascript Workshop", "url": "https://github.com/timoxley/functional-javascript-workshop", "description": "A functional Javascript workshop.", "stars": "2k"}, {"name": "J-Bob", "url": "https://github.com/the-little-prover/j-bob", "description": "The proof assistant from the book `The Little Prover`", "stars": "414"}, {"name": "Haskell Must Watch", "url": "https://github.com/olehkuchuk/haskell-must-watch", "description": "A list of videos, talks and courses on Haskell.", "stars": "1.1k"}, {"name": "Intro SML", "url": "http://www.it.dtu.dk/introSML/", "description": "Code, corrections and info on the book: `Introduction to Programming using SML`"}, {"name": "Functional Programming In JavaScript", "url": "https://github.com/busypeoples/functional-programming-javascript", "description": "List of functional programming resources in JavaScript.", "stars": "305"}, {"name": "Functional Programming Jargon", "url": "https://github.com/hemanth/functional-programming-jargon", "description": "Project for providing a glossary for FP, and make learning FP easier.", "stars": "19k"}, {"name": "Bow", "url": "https://github.com/bow-swift/bow", "description": "Companion library for Typed Functional Programming in Swift.", "stars": "642"}, {"name": "Parsing With Haskell Parser Combinators", "url": "https://github.com/lettier/parsing-with-haskell-parser-combinators", "description": "A step-by-step guide to parsing using Haskell parser combinators.", "stars": "90"}, {"name": "Functional Programming Learning Path", "url": "https://github.com/imteekay/functional-programming-learning-path.git", "description": "A Learning Path for Functional Programming"}]}, {"name": "People", "parent": "Table of Contents", "entries": [{"name": "Simon Peyton Jones", "url": "http://research.microsoft.com/en-us/people/simonpj/", "description": "One of the creators of the Haskell Language and the Glasgow Haskell Compiler. Microsoft Researcher."}, {"name": "Philip Wadler", "url": "http://homepages.inf.ed.ac.uk/wadler/", "description": "Professor of Theoretical Computer Science at the University of Edinburgh, author of the famous paper Propositions as Types. One of the main people behind Java Generics Types."}, {"name": "Matthias Felleisen", "url": "http://www.ccs.neu.edu/home/matthias/", "description": "Author of many books such as How to Design Programs, and The Little Schemer."}, {"name": "Erik Meijer", "url": "https://www.linkedin.com/pub/erik-meijer/0/5ba/924", "description": "Former software architect for Microsoft, Functional Programming researcher, gives lectures on\tFP, Software Design and Reactive programming."}, {"name": "Brian Beckman", "url": "https://www.linkedin.com/in/brianbeckman", "description": "Former Microsoft Researcher, actual Software Engineer at Amazon. Contributed to implementing FP features to inumerous Microsoft technologies such as C#, LINQ and F#"}]}, {"name": "License", "parent": "Table of Contents", "entries": []}]} |